Haskell第二课
来源:互联网 发布:mac系统突然很卡 编辑:程序博客网 时间:2024/05/17 08:41
标签(空格分隔): 笔记 Haskell
1.
double x y = x + y
f x y::Int->Int(以e :: t的格式表示e的类型是t)
f:: A1 -> A2-> B 其中A1A2是输入的类型,B是输出的类型(这事写函数前的类型说明),f是函数名(要小写字母开头)
例:add :: Int -> Int -> Int
add x y = x + y 注:类型定义和函数声明要左对齐,如果函数太长,要写到下一行,需要缩进(不用文本编辑是无法换行的)
2.类型
Int是有限整数
Integer,所有整数
Float,Double,浮点数(即实数)
“XXX”,”Hello, world”表示字符串,类型是String.
(String==[char],如Hello==[‘H’,’e’,’l’,’l’,’o’])
布尔类型Bool:True,False, (&&) , (||)
布尔运算True | | False = True
3.
:type length 可查看length的类型(注意冒号)
结果为length :: Foldable t => t a -> Int (a,b是类型变量,可以是任意类型,这种函数叫多态函数)
:type可简写成:t (如 :t (3 + 5) 可得到:(3 + 5) :: Num a => a :t (++) 可得到 (++) :: [a] -> [a] -> [a] (问运算符的类型时需要打括号,二元运算符不能放在两个值的前面)
myMax (x,y) = if x>y then x else y 的类型为:
myMax :: (Float, Float) -> Float
myMax x y = if x>y then x else y 的类型为:
Mymax1 :: Float -> Float ->Float 两种方式类型不一样,使用方法也不一样
(Int , Int) 整数对
(String , Int) 两个集合的叫做二元组
关于二元组的函数例子:
getName :: (String , Int) -> String(编程时不用写)
getName (name, age) = name
qSort :: [Int] -> [Int]
类型[Int]包含整数序列,如[1,2],[2,3,3,2],[3,1],[3],[]
[Float],[String]都是类型,一般地,a是一个类型,[a]是一个列表类型,表示a的值的列表类型
(Int, [Int]),[((Int,Float), [String])]都是合法类型,
[(Int,Int)(Int,Float)]不合法(一个是整数对,一个是二元组)
- Haskell第二课
- 3天学习haskell---haskell第二天
- 第27课 Haskell
- Haskell第三课
- Haskell第一课
- Haskell
- Haskell
- Haskell简介
- haskell笔记
- Haskell 入门
- 尝试haskell
- [Haskell] ex1
- Hi Haskell
- [Haskell] ex3
- 初识haskell
- Haskell教程
- haskell学习心得
- SICP HASKELL
- 浅谈数据结构
- 个人记录-LeetCode 6.ZigZag Conversion
- Sublime Text3注册码(最新可用)
- 哈希表算法解析以及面试题目应用
- 欢迎使用CSDN-markdown编辑器
- Haskell第二课
- Haskell第三课
- 微信支付
- sed初步
- hud 1003 max sum 算法导论学习
- 面试经典算法题--爬楼梯 的六种解法
- 约瑟夫环问题
- 嵌入式系统学习(六)-bootloader基础及分析
- hdu5905 Black White Tree