haskell platform下载:https://www.haskell.org/platform/

进入haskell控制台,终端输入

$ ghci

编译文件

:l file.hs

数组操作

>> length [2,3] 长度
>> head [2,3] 首值
>> tail [2,3] 去除头之后
>> last [2,3] 尾值
>> 2:[1] 连接数组
>>[2,3] > [1,3]比较
>> null [] 判断是否为空
>> reverse [2,3] 反转
>> drop 3 [2,3]删除前3个
>> take 3 [2,3]取前3个
>> minimum [2,3]最小
>> maximum [2,3]最大
>> 4 `elem` [1,2,3] 是否包含
>> sum [2,3] 和
>> product [2,3] 积 构造数组
>> [1..10]
>> ['1'..'10']
>> take 10 [1,2..] 取1~10
>> take 10 (cycle [1,2,3]) 取循环数组中的前10
>> take 10 (repeat 5) 构造一个数组长度为10,值为5的数组

集合

>> [x * 2 | x <- [1..2], x * 2 > 10]

元祖tuple

>> (,)
>> (,,"hello")
>> fst (,)
>> snd (,) 此两函数只对2元组有效
>> zip [,] ["ONE", "TWO"] 匹配组合成二元组
求一个直角三角形
>> let triangle = [(a,b,c) | c <- [1..10], a <- [1..c], b <- [1..a], a + b > c, a^2 + b^2 == c^2, a + b + c == 24]
>> triange

型别

>> :t
>> :t ""
>> :t ''
>> :t ==2
基本typeclasses
Eq:判断相等 除函数以外所有型别都属于Eq
Ord:可比较大小
Show:除函数以外都属于Show。可输出字符串
Read:将字符串转为相应类型
>> read "TRUE" || False
Enum可用于range
>> pred 'B' 前一个
>> succ 'B' 后一个
Bounded
>> minBound :: Int
>> maxBound :: Int
Num
Integral
Floating
RealFloat
String
整数和浮点相加
>> fromIntegral (3::Int) + 3.2

haskell笔记1的更多相关文章

  1. Haskell 笔记(三)类型系统

    类型 (Type) Haskell的类型系统式静态类型系统,在编译的时候就知道数据类型,所以不同类型的值运算在编译的时候就会报错,比如用布尔值和整数运算,在C语言中这种运算就不会报错. Haskell ...

  2. Haskell 笔记(四)函数系统

    函数系统 函数式编程当然少不了函数系统啦,在教程最初的时候就有一个最简单的函数,函数系统贯穿在Haskell全部,Haskell的函数有几个重要的性质. 首先声明一下函数的参数和返回值类型 然后有一个 ...

  3. Haskell 笔记 ③

    ①循环?NO!请递归思考问题! 手艹一个求列表中最大值代码,C语言中习惯性for扫一下比较出最大值.但是可以用递归! maximum'::(Ord a)=>[a]->a maximum' ...

  4. Haskell 笔记 ②

    ①如何写一个求阶层函数? fac 0 =1 fac n=n*fac(n-1) 函数自适应匹配参数,可以把特判情况写在前面,注意按顺序匹配的,n这种万能情况写在最前面就完蛋了.同时你也注意到,函数只能一 ...

  5. Haskell 笔记 ①

    ①一切都是函数,包括常量.表达式,格式:名字 参数1 参数2.. =函数内容 ②if语句(else绝对不可以省略) F=if (..) then x else y ③没有数组,只有列表[1,2,3,4 ...

  6. haskell笔记2

    模式匹配 # haskell_test.hs length' :: [a] -> a length' [] = 0 length' (_:x) = 1 + length' x as模式 xs@x ...

  7. Haskell复习笔记(一)

    Haskell笔记这是第三次总结,前两次都因为各种原因丢失了,对于Haskell我算不上什么大神,只不过在大学时为了学习算法时选择了Haskell. 当时的入门书籍选择的是<Learn You ...

  8. haskell学习笔记_函数

    一开始学习函数式编程语言就被告知函数式编程语言是一种“定义式”的语言,而不是一种命令式的语言,在学习haskell的函数语法时,此感觉更加强烈,haskell的函数定义倾向于一种类似C++里面的swi ...

  9. Haskell语言学习笔记(88)语言扩展(1)

    ExistentialQuantification {-# LANGUAGE ExistentialQuantification #-} 存在类型专用的语言扩展 Haskell语言学习笔记(73)Ex ...

随机推荐

  1. Windows 一键安装OpenSSL

    原理:OpenSSL在github上有开源项目,我们只需要把代码克隆到本地,在本地编译一下就好了 注意事项: 1->在github上获取源码,必须要安装git for windows,网址 ht ...

  2. 变态的HelloWorld

    public static void main(String[] args) { int i, n[] = { (((1 << 1) << (1 << 1) < ...

  3. Java实验五报告——TCP传输及加解密

    一.实验内容 1.运行教材上TCP代码,结对进行,一人服务器,一人客户端: 2.利用加解密代码包,编译运行代码,一人加密,一人解密: 3.集成代码,一人加密后通过TCP发送: 注:加密使用AES或者D ...

  4. 2014年最大福利:185个Google排名因素!免费电子书下载

    本博开张以来最大规模的干货放送!新手老手都有用! 不要再去追求PR了,不要再去发博客发论坛发外链了! 关注真正有用的Google排名因素! 整整185项,每一项都附带说明,必要的地方会给出一些附加的阅 ...

  5. The Top Five Software Project Risks

    Risk management (or more precisely risk avoidance) is a critical topic, but one that is often dull t ...

  6. 在CentOS6.5上安装Tomcat7

    Tomcat大本营地址:http://tomcat.apache.org/ 本文使用到的Tomcat7下载地址:http://apache.opencas.org/tomcat/tomcat-7/v7 ...

  7. day05-java-(循环问题,数组)

    day05-java-(循环问题,数组) 1.三种循环结构的更佳适用情况:  1)while: "当..."循环  2)do...while: "直到..."循 ...

  8. Python-S13作业-day4-之登陆,管理后台

    Python-S13作业-day4-之登陆,管理后台 需求: 本节作业,用户管理程序:          普通用户: 登录,注册,修改密码,查看本用户信息 管理员用户: 查看所有普通用户,按照指定关键 ...

  9. jQuery对象与DOM对象之间的转换(转)

    什么是jQuery对象? —就是通过jQuery包装DOM对象后产生的对象.jQuery对象是jQuery独有的,其可以使用jQuery里的方法. 比如: $(“#test”).html()   意思 ...

  10. Linux 动态链接库学习笔记

    参考资料: http://www.linuxidc.com/Linux/2012-01/50739.htm http://www.yolinux.com/TUTORIALS/LibraryArchiv ...