书里面用的是huge我用的是GHC
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中注释分两种,单行注释是 --,多行的话 {- 与-}
呵呵,欢迎大家来拍砖.
- 大小: 832.8 KB
分享到:
相关推荐
在"压缩包子文件的文件名称列表"中,我们看到只有一个文件夹名为"haskell-programming-master",这个文件夹很可能包含了作者对书中的每个章节的练习题目的注解、解答代码以及可能的额外资源。读者可以通过阅读这些...
Org-Mode则是Emacs中的一个强大组织和笔记系统,支持任务管理、时间追踪和文档创作,与Haskell结合使用可以极大地提高编程效率和学习效果。 此外,书中的“dictionary-learning”概念指的是利用字典或词汇表来辅助...
1. **Haskell**:Haskell是一种纯函数式编程语言,它强调无副作用和惰性求值。在Haskell中,程序被视为数学上的函数,这与传统的命令式编程范式截然不同。Haskell的类型系统强大且静态,能确保程序在编译时的类型...
通过OPLSS 2018的笔记和讲义,开发者可以深入理解Haskell的强大功能,包括其类型系统、函数式编程特性、并行与并发编程,以及如何利用这些特性构建高效、安全的软件系统。这些资料不仅适合初学者入门,也对经验丰富...
很棒的笔记 _ _ _____ ___ ___ _ __ ___ ___ _ __ ___ | | _ ___ ___ \ / \ / / _ \/ __ | / _ \| ' _ ` _ \ / _ \ | ' _ \ / _ \| __/ _ \/ __ | \ V V / __/ \_ _ \ (_) | | | | | | __/ | | | | (_) | || __/...
编程语言:复习说明编程语言:复习笔记为什么要进行函数式编程为什么选择HaskellHaskell-Windows上的安装和入门前往Haskell IDE for 学习资料了解Haskell
"trackers"和"learning-tracker"表明开发者使用某种方式来记录自己的学习历程和进度,可能是通过笔记、日志、项目管理工具或自定义的程序。这种自我监控和反馈机制有助于保持学习动力,识别学习瓶颈,以及调整学习...
在"putting-lenses-to-work-master"这个压缩包中,可能包含了关于如何在实际工作中应用lens的示例代码、幻灯片和讲解笔记。这些资源可能会涵盖以下知识点: 1. **Lens的基本概念**:如何定义和使用简单的lens,以及...
在IT行业中,函数编程(Functional Programming)是一种编程范式,它强调程序的数据处理是通过评估纯函数来实现的,避免了可变状态和副作用。这种编程风格有助于写出更简洁、易于理解和测试的代码。函数编程语言如...
配置XMonad通常是通过修改Haskell源代码完成的,这是一种称为“literate programming”的实践,使得配置文件既可读又可执行。 **Emacs** 是一个强大的文本编辑器,拥有丰富的功能和高度可扩展性。Emacs配置文件`....