GGG

プログラミング言語やソフトウェア開発について思ったことを書いてます

Haskell 最初のn歩 :関数を調べる

 調べた関数

 

関数名

定義説明

const

第1引数を出力する。

https://hackage.haskell.org/package/base-4.7.0.0/docs/src/GHC-List.html

には定義がない。組み込み関数?


Prelude> :t const

const :: a -> b -> a

Prelude> const 12 (1 `div` 0)

12

seq

正確評価を行うために使用する?(遅延評価しない)

https://hackage.haskell.org/package/base-4.7.0.0/docs/src/GHC-List.html

には定義がない。組み込み関数?

Prelude> :t seq

seq :: a -> b -> b

 

read

第1引数の文字列を、文字列が表現する値に変換する(IntやFloatなど)

https://hackage.haskell.org/package/base-4.7.0.0/docs/src/GHC-List.html

には定義がない。組み込み関数?

Prelude> :t read

read :: Read a => String -> a

※”7” を型推論できない場合は明示する

Prelude>read “7” :: Int

7

※ “7” は 1 によって型推論できる

Prelude> read “7” + 1

8

filter

https://hackage.haskell.org/package/base-4.7.0.0/docs/src/GHC-List.html#filter


第1引数:(a -> Bool)

第2引数:リスト

結果:リスト


第1引数の関数の結果が(True)になる(条件が合う)要素のみを取り出す関数(wikiより)


Prelude> :t filter

filter :: (a -> Bool) -> [a] -> [a]

※mapとの違いは第1引数の関数定義

・map : (a -> b)

・filter : (a -> Bool)

Prelude> filter (> 0) [-1,0,1,-2,2,-3]

[1,2]