类型类软件设计师的数学之路(2)-四大神器-haskell(15)
PS:今天上午,非常郁闷,有很多简单基础的问题搞得我有些迷茫,哎,代码几天不写就忘。目前又不当COO,还是得用心记代码哦!
本博客全部内容是创原,未经书面许可,严禁任何情势的转载。
http://blog.csdn.net/u010255642
12、卫守(guards)
模式匹配针对的是肯定值,而卫守(guards)则试测值的性特是true还是false,卫守更适合要需对参数用运杂复的件条表达式情况。
numtest ::(Num a,Ord a)=>a->String numtest testnum |testnum <=100 ="<=100" |testnum <=1000 ="<=1000" |testnum <=10000 ="<=10000" |otherwise =">10000"
加载后行运。
*Main> numtest 10
"<=100"
*Main> numtest 1000
"<=1000"
*Main> numtest 10000
"<=10000"
*Main> numtest (-1000)
"<=100"
*Main> numtest 100000
">10000"
再来看一个解一元二次方程的例子,只有一个未知数且未知数最高次数为2的整式方程叫做一元二次方程,其一般情势为(a≠0)。
求根的公式是
当有两个不相称的实数根,即是0时,有2个相称的实数根,否则是面下两个数复根:
实现这个任务,我们要需装载数复模块,装载模块的语法为: import 模块名 , 数复模块的名字是Data.Complex。
我们在ghci中可以直接用使:m +/- 模块名的式方加载或放释模块。比如:
Prelude> :m +Data.Complex
Prelude Data.Complex> :m -Data.Complex
Prelude>
也可同时装载和放释多个模块
Prelude> :m +Data.Complex Data.List
Prelude Data.Complex Data.List> :m -Data.Complex Data.List
Prelude>
全部装载模块的函数可以在全局命名空间用使。
数复的表现式方是:实部:+虚部,比如5+12.8i可在haskell中表现为:
Prelude> :m +Data.Complex
Prelude Data.Complex> 5 :+12.8
5.0 :+ 12.8
Prelude Data.Complex>
关于数字的类型类,haskell主要有:
Integral:包含Int和Integer类型
RealFloat:包含Float和Double 类型
RealFrac:包含RealFloat类型类,Ratio类型是该类型类的成员
Floating:包含 RealFloat类型类,Complex类型是该类型类的成员
Real:包含Integral和RealFrac类型类
Fractional:包含RealFrac和Floating类型类
Num:包含Real和Fractional类型类
文章结束给大家分享下程序员的一些笑话语录:
IBM和波音777
波音777是有史以来第一架完全在电脑虚拟现实中设计制造的飞机,所用的设备完全由IBM公司所提供。试飞前,波音公司的总裁非常热情的邀请IBM的技术主管去参加试飞,可那位主管却说道:“啊,非常荣幸,可惜那天是我妻子的生日,So..”..
波音公司的总载一听就生气了:“胆小鬼,我还没告诉你试飞的日期呢!”