七月记录:整个七月就在玩,参加夏令营,去遨游。。。。 八月份须要开始复习,正等书的这个过程忽然想起一直没有完成的学习-haskell,因此当前的目标是用haskell制做一个局域网通讯的小工具,要求:一,完成工具要求 二,完备的设计文档 三,报告express
学习资料:http://fleurer-lee.com/lyah/chapters.htm haskell趣学指南 (后续还会有别的书,rwh等)函数
基本语法:工具
类型:学习
常见基本类型: Int:通常是32bit整数ui
Integer:无限大整数spa
Float:单浮点设计
Double:双浮点code
Bool:布尔型htm
Char:字符型
blog
常见类型类:
Eq:可判断性类型 例如Int等
Ord:可判断大小型
Show:可用字符串表示的类型
Read:将一个字符串转为Read的类型 单用需类型注释 如read “5” :: Int
Num:表示数字的类型类
Integral:一样是表示数字的类型类。Num包含全部的数字:实数和整数。而Intgral仅包含整数,其中的成员类型有Int和Integer。
Floating:仅包含浮点类型:Float和Double。
List and Tuple:
List:多维链表 Tuple:元组
List:类型相同,不定长
Tuple:类型能够不相同,可是单元数据数目必定
语法:
if-else语句 格式: if 表达式
then 表达式
else 表达式
if-else语句自己也是一个表达式,这里体现出函数式语言的一个特色:一切皆数
模式匹配:模式匹配经过检查数据的特定结构来检查其是否匹配,并按模式从中取得数据。
注意:记得必定通配语句
where绑定:where绑定中定义的名字只对本函数可见,可用模式匹配,函数等
let in表达式: 格式:let [bindings] in [expressions]
let绑定自己是个表达式,而where绑定则是个语法结构
case :
格式:
case expression of pattern -> result
pattern -> result
pattern -> result
...
用途 1:if-else或者case等
lucky :: (Integral a) => a -> String lucky 7 = "Lucky Number seven!" lucky x ="Sorry,you're out of luck,pal!"
用途 2:递归
--quicksort quickSort :: (Ord a) => [a] -> [a] quickSort [] = [] quickSort [x] = [x] quickSort (x:xs) = (quickSort small) ++ [x] ++ (quickSort big) where small = [y | y<-xs,y<=x] big = [y | y<-xs,y>x]