本博客所有内容是原创,未经书面许可,严禁任何形式的转载。
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>