(二)启动函数部分
返回类型
首先补充一个有用的命令,叫做:t。该命令的作用是返回输入内容的类型。
ghci> :t 1
1 :: Num p => p
ghci> :t 0.1
0.1 :: Fractional p => p
ghci> :t 'a'
'a' :: Char
ghci> :t "s"
"s" :: [Char]
ghci> let a = ['a', 'a', 'a']
ghci> :t 'a'
'a' :: Char
ghci> let a = [1, 2, 3]
ghci> :t 'a'
'a' :: Char
ghci> let a = 1
ghci> :t 'a'
'a' :: Char
ghci> let a = 1.0
ghci> :t 'a'
'a' :: Char
开始写函数啦
在写函数之前,我觉得Haskell用法就是个简单的计算器,直到我知道有一种文件类型叫做hs文件。这个时候Haskell系列(一)初识Haskell中如何退出就派上用处了。先退出ghci,移动到想要的文件夹,新建或者已经存在至少一个后缀名为.hs的文件。
然后我们可以重新进入ghci啦。假设我们已经新建了一个叫做example.hs的文件,输入:l example.hs,得到下面的结果。
ghci> :l example.hs
[1 of 1] Compiling Main ( example.hs, interpreted )
Ok, one module loaded.
我们在hs文件中写一个简单的2倍函数:
doubled x = 2*x
然后在命令行里输入doubled 100,得到一个返回值200.
为了直观,我在VSCode里打开终端同时展示代码和命令行。
也可以有很多个变量,具体写法如下:
doubleTwo x y = 2*(x+y)
运行结果也展示一下。
Haskell 中的函数并没有顺序,所以先声明 doubled 还是先声明 doubleTwo 都是同样的。
*Main> doubled (doubleTwo 100 100)
800
不过一定要加括号哦。
我们再写一个关于if...else...的函数:
double x = if x > 0 then doubled x
else x
得到结果如图:
函数部分就结束啦,唯一要注意的是,函数名称的首字母不能大写。