3天学习haskell---haskell第一天
来源:互联网 发布:花哥脸型数据 编辑:程序博客网 时间:2024/05/22 10:28
一 表达式和基本类型
这个类似于命令式语言
二函数
函数是函数式编程的一等公民。
这部分最重要的是递归函数。
1基本递归
例如,求阶乘
代码:fact x=if x==0 then 1 else fact(x-1)*x
2 模式匹配(实现递归)
fact 0=1
fact x=x*fact(x-1)
3 哨兵表达式(为了改变模式匹配的顺序)
fact x
|x>1 =x*fact(x-1)
|otherwise =1
三 元组和列表
元组,例如(x,y,z)
列表 例如[int,int,int] [1..4] [10,9.5..4]
列表的操作有:head,tail,zip(合并) ,take (取前几项)
列表的生成:
1递归 h:t=[1,2,3]
2范围与组合 [1..4] [10,9.5..4] take 5[0,2..]
3列表推导 let crew=["kirk","pp","james"]
[(a,b)|a<-crew,b<-crew,a|=b]
主要参考网站为:维基教科书 http://zh.wikibooks.org/wiki/Haskell
haskell中文社区
本文内容总结来源于《七周七语言》。
附课后题答案:
--4
func2 []=[]
func2 [h]=[h]
func2 (h:t)=(func2 t)++[h]
--5
color=["blue","black","white","yellow","red"]
func5=[(a,b)|a<-color,b<-color,a<b]
--6
list6=[1..12]
func6=[(a,b,a*b)|a<-list6,b<-list6,a<b]
--7
--a,b..e represent 5 states
list7=["red","blue","green"]
dif7 a b =if a==b then 0 else 1
find7=[(a,b,c,d,e)|a<-list7,b<-list7,c<-list7,d<-list7,e<-list7,dif7 a b==1,dif7 b d==1,dif7 a d==1,dif7 a b==1,dif7 a c==1,dif7 a e==1,dif7 c e==1,dif7 c d==1]
- 3天学习haskell---haskell第一天
- 3天学习haskell---haskell第三天
- 3天学习haskell---haskell第二天
- Haskell第一天
- Haskell学习3
- Haskell 学习
- Haskell
- Haskell
- haskell(3)
- 「学习总结-Haskell-3] Haskell常用数据结构
- 第27课 Haskell
- haskell学习笔记(3)-Types and Typeclasses
- 开始学习haskell
- 无废话学习Haskell
- Haskell学习(1)
- Haskell学习1
- Haskell学习2
- Haskell学习笔记1
- 隐藏django model
- linux命令打包压缩与解压
- [Cocoa]深入浅出 Cocoa 之 Bonjour 网络编程
- PHP保留两位小数但不四舍五入
- Ubuntu 11.04 下安装JDK 6 + Tomcat 7
- 3天学习haskell---haskell第一天
- linux基本知识和基本操作
- Real-Time Tracking and Tuning for Busy Tomcat Servers
- 详讲:C#快速导出多个sheet到excel的两种方法(Cell和Range方法), 解决了(导入时外部表不是预期的格式)
- SQL Server清除连接过的服务器名称历史
- NeoLoad 4.1 - 号称第一款全面支持移动性能测试的工具
- MATLAB 与 音频处理 相关内容摘记 1
- 实验总结
- ACE1.6.0开发环境配置——VS2008