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. [LeetCode] Binary Tree Level Order Traversal 2

    Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left ...

  2. ArcGIS三大文件格式解析

    原文:ArcGIS三大文件格式解析 Shape数据 Shapefile是ArcView GIS 3.x的原生数据格式,属于简单要素类,用点.线.多边形存储要素的形状,却不能存储拓扑关系,具有简单.快速 ...

  3. E1114 Temp Ambient

    这2天DELL服务器的指示灯变为了黄色 ,显示“ E1114 Ambient Temp exceeds allowed range“  原来是周围环境温度超出了许可范围 ,难道最近的天真的是太冷了 ”

  4. .NET基础加强,找工作之前可以看看这些............

    .NET基础知识加强: 1  变量命名规则:骆驼命名法:第一个字母小写之后的首字母大写,[对于方法名和类名首字母大写]→培养良好的命名规范. 2  构造函数:没有返回值,方法名和类名相同,每个类中都有 ...

  5. SEO优化笔记

    1,清理垃圾代码. 清理垃圾代码是指删除页面中的冗余代码,可以删除80%的冗余代码,垃圾代码主要指那些删除了也不会对页面有任何影响的非必要代码.最常见的垃圾代码:空格空格字符是网页中最常见的垃圾代码. ...

  6. js 传参报错 参数含有数字、字母组合的字符串SyntaxError: identifier starts immediately after numeric literal

    报错的意思是标识符以数字开头,这是因为js是弱类型的语言当发现第一个数字是就自动转化为数字类型的但是其中还含有字符所以报了错,‘ 报错的原因是因为我们想传的字符串,但是js却当成数字,所以需要给传的参 ...

  7. Android 退出app,后台推送的服务也停止了,怎么可以做到不停止后台服务呢?

    service粘性等的那4种方式试了,三星的可以,小米老款手机可以,新款不行,华为新款也不行,还有魅族什么的,都不行,新款的手机上都有一个安全中心,只有在安全中心里面添加上允许app自启动才可以 怎么 ...

  8. RTOS

    1. http://www.nuttx.org/ 2. http://www.rt-thread.org/page/73.html

  9. RouterOS软路由设置固定IP+PPPOE

    内网: IP:192.168.10.254/24 网关:192.168.10.254 外网: IP:218.17.172.17/28 子网掩码:255.255.255.240 网关:218.17.17 ...

  10. 笔记:ASP.NET MVC安全

    XSRF/CSRF Prevention in MVC ValidateAntiForgeryToken 参考这里的简单例子:http://www.asp.net/mvc/tutorials/mvc- ...