haskell(2)
来源:互联网 发布:考浙江大学研究生知乎 编辑:程序博客网 时间:2024/05/21 07:48
本博客所有内容是原创,未经书面许可,严禁任何形式的转载。
http://blog.csdn.net/u010255642
9
Prelude> max 82.3 0.12
82.3
Prelude>
Prelude> min (3*2) 12
6
Prelude> max (3*2) 12
12
Prelude>
我们可以通过``将前缀函数包围后转变成中缀函数,如:
Prelude> 9 `div` 2
4
Prelude> 10 `min` 12
10
Prelude> 10 `max` 12
12
Prelude>
haskell属于函数编程语言,不属于命令过程式语言,因为有很多语法特色需要习惯
比如:max 10 (min 15 20) ,括号中的min如果在C、c++中可能表示一个参数,但在这里min表示一个函数,先求15和20之前的最小数。
Prelude> max 10 (min 15 20)
15
Prelude> max 10 (succ 12)
13
Prelude>
查看运算符的优先级可以使用info函数
Prelude> :info (+)
class Num a where
(+) :: a -> a -> a
...
-- Defined in `GHC.Num'
infixl 6 +
Prelude> :info (-)
class Num a where
...
(-) :: a -> a -> a
...
-- Defined in `GHC.Num'
infixl 6 -
我们可以在haskell中加载自己的程序,也可以在程序中定义函数,程序的扩展名为.hs
使用:l加载程序,使用:r重新加载。
我们编写一个简单的test.hs,内容如下 :
mydouble x=x*x
myadd x1 x2 =x1+x2
运行后:
Prelude> :l f:/pro/test.hs
[1 of 1] Compiling Main ( F:\pro\test.hs, interpreted )
Ok, modules loaded: Main.
*Main> mydouble 6
36
*Main> myadd 6 8
14
*Main> 6 `myadd` 12
18
*Main>
我们修改一下test.hs,加入一个自定义的求3个参数的最小数的函数
mydouble x=x*x
myadd x1 x2 =x1+x2
mymin x1 x2 x3=min x1 (min x2 x3)
重新加载并运行
*Main> :r
[1 of 1] Compiling Main ( F:\pro\test.hs, interpreted )
Ok, modules loaded: Main.
*Main> mymin 12 31 10
10
*Main>
- haskell(2)
- Haskell 2
- haskell的世界观(2)
- Haskell学习2
- haskell的世界观(2)
- haskell笔记(2)
- haskell learning1(2)
- Haskell
- Haskell
- 「学习总结-Haskell-2」Haskell重要数据结构:List
- haskell Monad 2 Write monad
- Haskell作业2(2)|放大字符串
- Review on 2 well-known Haskell textbooks
- Haskell函数式编程基础习题(2)
- Haskell语言学习笔记(2)
- Haskell作业2(1)|毕达哥拉斯三元组
- haskell学习笔记(2)-List Comprehension
- Haskell学习(2)–类型和函数
- 【编码随笔】数据类型、储存格式与fprintf
- VC 6.0编译器错误整理
- Linux中基本错误信息
- ucenter平台使用心得
- android 禁止屏幕锁屏
- haskell(2)
- stm32 串口第一字节丢失问题分析
- 运用DelayLoad来优化运用程序地性能,拦截API(转)
- 强力提高 android 4 编译效率(c,c++部分)
- opencv之聚类算法
- poi写入读取excel 2007版xlsx 97版xls
- 虚拟专用网络VPN的使用配置
- linux 解压
- WebForm:毒药还是利器?