Haskell 趣学指南 入门笔记(一)
废话少说。正题
什么是函数式语言,我的初步理解是:以函数为主导,函数构成函数。
现在编译器,后缀为.hs
跳过下载安装那部分。
我是windows 系统下
我自己又找了一个带图形界面的编辑器:winGhci
http://www.softpedia.com/get/System/Launchers-Shutdown-Tools/WinGhci.shtml
有点类似python自带的那个
Haskell 函数为主体:
succ 是指下一个。
最奇怪的事 min ,max函数居然 可以不要括号。
注意一点 函数拥有最高的 优先级。]当然也可以自己封装函数啦。
在winghci目录下新建i一个body.hs记事本
然后就可以在命令台下调用该函数:
然后是Haskell if 语句
最神奇的是:if 语句必须 跟else
body.hs函数
调用:
ps:函数不能以大写开头。。。(居然
列表:
1 *Main> let numbers=[1,2,3,4,5,6,7,8] 2 *Main> numbers 3 [1,2,3,4,5,6,7,8]
let是定义常量.类似c++ const?
也支持列表拼接。
1 *Main> [1,2,3,4,5]+[6,5,7,8] 2 3 <interactive>:18:1: 4 Non type-variable argument in the constraint: Num [t] 5 (Use FlexibleContexts to permit this) 6 When checking that ‘it’ has the inferred type 7 it :: forall t. (Num t, Num [t]) => [t] 8 *Main> [1,2,3,4]++[1,2,3,4,5] 9 [1,2,3,4,1,2,3,4,5]
必须用 ++
而且++ 两边的类型要相同
列表比较是从大到小比较的,类似字符串
得到区间:*Main> [1..10]
[1,2,3,4,5,6,7,8,9,10]
机智的是你可以列举第一项,第二项,最后一项得到区间
不要运行这句:[1,3..]
我死机了。。。
如果非得用无限长度的列表可以用take 24 [1,3..] 取这个列表的前24项
列表推导式:
元组:
使用元组来表示向量关系
序对:我觉得类似C++ 的pair
请记住HASKELL是惰性的
第一章完结,这篇博客主要计入自己开始入门Haskell的点滴。
写得不好,多多包涵

浙公网安备 33010602011771号