本人转载自这里,记录下haskell一些简单的基础,大牛轻拍。
haskell 中有+ - * / ^ 和 `div` (这个是只取整数部分,比如 5 'div'3 输出 1 其他的符号就不用解释了。
这边要注意一些算符优先级, 比如2*3^4 相当于 2*(3^4) ,而2^3^4相当于 2^(3^4)。
haskell中还有很多操作list的操作。
(1) 选择一个非空lists中的第一个元素
head [1,2,3,4,5] => 1
(2)从一个非空list移除第一个元素
tail [1,2,3,4,5] =>[2,3,4,5]
(3) 选择list的第N个元素
[1,2,3,4,5] !!2 => 3
(4) 选择list中的前N个元素
take 3[1,2,3,4,5] =>[1,2,3]
(5) 删除list中前N个元素
drop 3[1,2,3,4,5] =>[4,5]
(6)计算一个list的长度
length [1,2,3,4,5] =>5
(7)计算一个list的和
sum [1,2,3,4,5]=>15
(8)计算一个list的积
product[1,2,3,4,5] =>120
(9)合并两个list
[1,2,3]++[4,5] =>[1,2,3,4,5]
(10)反转一个list
reverse[1,2,3,4,5] =>[5,4,3,2,1]
比如数学中 的一个表达式 f(a,b) +cd 表示一个函数f(a,b)的值加上cd的积的值。而在haskell中我们是这样写的 f a b +c*d
下面这张表是数学中的表达式表示和haskell中的区别.
Mathematics Haskell
f(x) f x
f(x,y) f x y
f(g(x)) f (g x)
f(x,g(y)) f x (g y)
f(x)g(y) f x *g y
首先在 任意一个目录下 比如 d:/ 建立一个 文件first.hs. 编辑这个文件 然后输入下列代码
double x=x+x
quadruple x=double(double x)
然后 :load second ,load成功后,在GHCI中键入
factorial 10它会 输出 36288000
键入 average [1,2,3,4,5] 他会输出 3
想要了解GHC更多的命令的话,可以去查他的DOC或者直接在GHCI中键入:?
要注意haskell中它的函数名必须得以一个小写字母开头,不然就会报错,下面是 haskell中的关键字
case class data default deriving do else
if import in infix infixl infixr instance
let module new type of then type where
解释一下where 关键字 ,给个例子:
a= b+c
where
{b=1;
c=2}
d=a*2
load之后,在GHCi中键入a 就会输出3,键入d就会输出6。