Haskell Types Flashcards
(!!)
(!!) :: [a] -> Int -> a
- [1,2,3] !! 1 = 2
- gets you the value at index
($)
($) :: (a -> b) -> a -> b
– elem 2 $ filter (> 2) [1,2,3,4]
– ([a] -> Bool) -> [a] -> Bool
($!)
($!) :: (a -> b) -> a -> b
– “call by value”, “strict evaluation”
(&&)
(&&) :: Bool -> Bool -> Bool
– 1 == 1 && True = True
(||)
(||) :: Bool -> Bool -> Bool
– 1 == 1 || False = True
(*)
(*) :: (Num a) => a -> a -> a
– 2 * 3 = 6
(**)
(**) :: (Floating a) => a -> a -> a
– 2 ** 3 = 8.0
(+)
(+) :: (Num a) => a -> a -> a
– 2 + 3 = 5
(++)
(++) :: [a] -> [a] -> [a]
– [2,3] ++ [1,4,5] = [2,3,1,4,5]
(-)
(-) :: (Num a) => a -> a -> a
– 2 - 3 = -1
(.)
(.) :: (b -> c) -> (a -> b) -> c
– (head . reverse) [1,2,3] = 3
(/)
(/) :: (Fractional a) => a -> a -> a
– 6 / 2 = 3.0
(/=)
(/=) :: (Eq a) => a -> a -> Bool
– 2 /= 2 = False
(
( a -> a -> Bool
– 2 < 3 = True
(<=)
(<=) :: (Ord a) => a -> a -> Bool
– 3 <= 3 = True
(==)
(==) :: (Eq a) => a -> a -> Bool
– 2 == 3 = False
(=
(=< (a -> m b) -> m a -> m b
(>)
(>) :: (Ord a) => a -> a -> Bool
– 2 > 3 = False
(>=)
(>=) :: (Ord a) => a -> a -> Bool
– 3 >= 3 = True
(»)
(») :: Monad m => m a -> m b -> m b
(»=)
(»=) :: Monad m => m a -> (a -> m b) -> m b
(^)
(^) :: (Num a, Integral b) => a -> b -> a
(^^)
(^^) :: (Integral b, Fractional a) => a -> b -> a
abs
abs :: (Num a) => a -> a
– abs (-42) = 42