Help us understand the problem. What is going on with this article?

Haskell プレリュード関数特集(1)

はじめに

Haskellには、予め多くの組み込む関数が用意されています。
その関数は、予め読み込まれるモジュールの中で定義されています。
これをプレリュードと呼びます。
今回は、このプレリュード関数にどのようなものがあるのか、実際に試しながらその結果を踏まえまとめていこうと思います。
ちなみに今回参考にしている資料はこちらHaskell公式-Preludeです。

プレリュード関数

Bool型の関数

&&

例.hs
  True && False
=> False

   False && False
=> False

||

例.hs
   True || False
=> True

   False || False
=> False
not
例.hs
   not True
=> False

   not False
=> True

otherwise

trueと同値です。
ガードを読みやすくするために使用する。

例.hs
   otherwise
=> True

Maybe型の関数

either

下記の例で説明すると、Leftなら、(+1)をRightなら(+2)を処理する関数を渡してEitherを取り除きます。

例.hs
   either (+ 1) (* 2) $ Left 5
=> 6

Tuples型の関数

fst

ペアの最初の値を抽出します。

例.hs
   fst ("Hello", "World")
=> "Hello"

snd

ペアの2番目の値を抽出します。

例.hs
   snd ("Hello", "World")
=> "World"

curry

カリー化されていない関数をカリー化された関数に変換します。

例.hs
  (curry fst)  "Hello" "World"
=> "Hello"

uncurry

カリー化された関数をペアの関数に変換します。

例.hs
   (uncurry (-)) (3, 1)
=> 2

Eq型クラスの関数

(==)

例.hs
   1 == 1
=> True

   1 == 2
=> False

(/=)

例.hs
   1 /= 1
=> False

   1 /= 2
=> True

Ord型クラスの関数

(<)

例.hs
   1 < 1
=> False

   1 < 2
=> True

(<=)

例.hs
    1 <= 1
=> True

    1 <= 2
=> True

(>)

例.hs
    1 > 1
=> False

   1 > 2
=> False

   2 > 1
=> True

(>=)

例.hs
   1 >= 1
=> True

   1 >= 2
=> False

max

2つの値の大きい値を返す。

例.hs
   max 1 5
=> 5

min

2つの値の小さい値を返す。

例.hs
   min 1 5
=> 1

Enum型クラスの関数

succ

引数で受け取った値の次の値を返す。

例.hs
  succ 1
=> 2

pred

引数で受け取った値の前の値を返す。

例.hs
   pred 2
=> 1

toEnum

数値 → 列挙型へconvertします。

例.hs
data Pets =  Dog | Cat deriving (Show, Enum)

main :: IO ()
main =  do
        print (toEnum 0 :: Pets)

=> Dog

fromEnum

列挙型 → 数値へconvertします。

例.hs
data Pets =  Dog | Cat deriving (Show, Enum)

main :: IO ()
main =  do
        print $ fromEnum Dog

=> 0

おわり

今日はここまで、次回はBounded型クラスからはじめます。

yoshii0110
あくまで個人の見解なので、その点はご容赦下さい。
kddi
KDDIは、通信を中心に周辺ビジネスを拡大する「通信とライフデザインの融合」をより一層推進し、国内はもとよりグローバルにおいても、5G/IoT時代における新たな価値創造を実現し、お客さまの期待を超える新たな体験価値の提供を追求してまいります。
http://www.kddi.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away