1 首先到 http://haskell.org/ghc/ 这边去下载个haskell的 编译器。
如果不习惯emacs的话可以到 这里 去下个 eclipse的插件,不过要注意这个插件只支持jdk5.0.
2 haskell 中有+ - * / ^ 和 `div` (这个是只取整数部分,比如 5 'div'3 输出 1 其他的符号就不用解释了。
这边要注意一些算符优先级, 比如2*3^4 相当于 2*(3^4) ,而2^3^4相当于 2^(3^4)。
3 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]
4 数学中的表达式和haskell的关系
比如数学中 的一个表达式 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
5 然后就可以写第一个haskell程序了。
(1)首先在 任意一个目录下 比如 d:/ 建立一个 文件first.hs. 编辑这个文件 然后键入
double x=x+x quadruple x=double(double x)
然后启动GHCI ,然后键入 :CD D:/ 这样就进入了 D盘根目录下,然后 再键入 :load first 如果load成功它会显示 OK,modules loaded:Main.
然后你输入 double 5 它会显示 10 输入quadruple 10 它会显示 40。
(2)我们再在d:/下建一个文件second.hs 编辑键入
factorial n = product [1..n] average ns = sum ns `div` length ns
然后 :load second ,load成功后,在GHCI中键入
factorial 10它会 输出 36288000
键入 average [1,2,3,4,5] 他会输出 3
想要了解GHC更多的命令的话,可以去查他的DOC或者直接在GHCI中键入
6 要注意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,呵呵,大家这下明白了吧.
7 在haskell中注释分两种,单行注释是 --,多行的话 {- 与-}
呵呵,欢迎大家来拍砖.