我是Haskell的新手,正在阅读“学习Haskell的伟大成就!”。
定义为“名称”和“空格”后跟“参数”的表达式可以用作函数。考虑以下代码:
doubleMe = 2
Run Code Online (Sandbox Code Playgroud)
该代码实际上遵循上述规则,因此我们可以将其视为一个函数。但实际上似乎是用Java或C ++ 进行的赋值操作。
那么,如何理解Haskell中的变量?
在程序的顶层,name = expression是一个定义。从数学变量的意义上讲,它会创建一个变量-只是某个表达式的名称。它可以是值的定义:
two :: Int
two = 2
Run Code Online (Sandbox Code Playgroud)
或函数的定义:
twice :: Int -> Int
twice x = x * two
Run Code Online (Sandbox Code Playgroud)
如果定义的类型带有功能箭头,则表示该功能->。
在do块或GHCi中,let name = expression是局部定义。
main :: IO ()
main = do
let greet name = "Hello, " ++ name ++ "!"
putStrLn (greet "world")
Run Code Online (Sandbox Code Playgroud)
最后,还有let关键字的另一种用法:let name = expression1 in expression2。这将创建单个表达式局部的变量:
length (let x = "hello" in x ++ x) == 10
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1343 次 |
| 最近记录: |