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 --四捨五入