programming in haskell 读书笔记1

本人转载自这里,记录下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]


数学中的表达式和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


第一个Haskell 程序。
首先在 任意一个目录下 比如 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。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值