Haskell|Prelude 函數

Haskell Prelude 函數


轉載自 http://blog.sina.com.cn/s/blog_80da54b801018mb5.html

轉載自 http://hi.baidu.com/izhier/item/78f7122e38897181af48f5dc

數學函數:

加、減、乘、除、取餘函數
(+)        :: Num a => a -> a -> a
(-)        :: Num a => a -> a -> a
(*)        :: Num a => a -> a -> a
(/)        :: Fractional a => a -> a -> a
div        :: Integral a => a -> a -> a
mod        :: Integral a => a -> a -> a
divMod        :: Integral a => a -> a -> (a, a)
quot        :: Integral a => a -> a -> a
rem        :: Integral a => a -> a -> a
quotRem        :: Integral a => a -> a -> (a, a)
注意:/ 函數的操作數是小數
其中divMod和quotRem的區別是:前者餘數的符號與除數相同,而後者與被除數相同

Prelude> 1 + 2
3
Prelude> 2 - 3
-1
Prelude> 3 * 4
12
P
Prelude> 5 / 2
2.5
Prelude> (+) 1 2
3
Prelude> (-) 2 3
-1
Prelude> (*) 3 4
12
Prelude> (/) 5 2
2.5
Prelude> divMod 9 (-2)
(-5,-1)
Prelude> quotRem 9 (-2)
(-4,1)

乘方函數
(^)        :: (Num a, Integral b) => a -> b -> a
(^^)        :: (Fractional a, Integral b) => a -> b -> a
(**)        :: Floating a => a -> a -> a
三個函數不同在於操作數
^ 的底數可爲小數,也可爲整數,指數是正整數;
^^ 的底數是小數,指數是任意整數;
** 的底數和指數都是小數)

Prelude> 2 ^ 3
8
Prelude> 2.5 ^ 3
15.625
Prelude> 2.5 ^^ 3
15.625
Prelude> 2.5 ** 3.5
24.705294220065465

邏輯運算函數:
not        :: Bool -> Bool
(&&)        :: Bool -> Bool -> Bool
(||)        :: Bool -> Bool -> Bool
(==)        :: Eq a => a -> a -> Bool
(/=)        :: Eq a => a -> a -> Bool
(<)        :: Ord a => a -> a -> Bool
(<=)        :: Ord a => a -> a -> Bool
(>)        :: Ord a => a -> a -> Bool
(>=)        :: Ord a => a -> a -> Bool

Prelude> not True
False
Prelude> True && False
False
Prelude> 1 == 1
True
Prelude> 1 /= 1
False
Prelude> 1 < 2 || 2 <= 3
True

數值函數:
signum        :: Num a => a -> a
negate        :: Num a => a -> a
abs        :: Num a => a -> a
recip        :: Fractional a => a -> a
floor        :: (RealFrac a, Integral b) => a -> b
ceiling        :: (RealFrac a, Integral b) => a -> b
round        :: (RealFrac a, Integral b) => a -> b
truncate        :: (RealFrac a, Integral b) => a -> b
exp        :: Floating a => a -> a
subtract    :: Num a => a -> a -> a
gcd        :: (Integral a) => a -> a -> a
lcm        :: Integral a => a -> a -> a
sqrt        :: Floating a => a -> a  
min        :: Ord a => a -> a -> a
max        :: Ord a => a -> a -> a
compare        :: Ord a => a -> a -> Ordering

Prelude> signum (-3)    --符號
-1
Prelude> negate (-3)       --相反數
3
Prelude> abs (-3)    --絕對值
3
Prelude> recip 3    --倒數
0.3333333333333333
Prelude> floor 3.8    --向下舍入
3
Prelude> ceiling 3.2    --向上舍入
4
Prelude> round 3.5       --四捨五入
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章