浏览 6672 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-04-08
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中注释分两种,单行注释是 --,多行的话 {- 与-} 呵呵,欢迎大家来拍砖. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-04-12
没啥意思
|
|
返回顶楼 | |
发表时间:2007-05-24
挺有趣的
支持一个 前几天也在看这个语言 不过资料太少了 |
|
返回顶楼 | |