プログラミング Haskell 第 2 版

プログラミング Haskell 第 2 版

 プログラミングHaskell 第2版
Grahum Hutton
ラムダノート
2019-08-02
¥ 3,456

第7章 高階関数

p.82

蓄積変数

「蓄積変数」とは、「accumulator」のこと。

foldl(fold left)

プレリュードで提供される高階関数 foldl(fold left の略称)は、演算子 #と蓄積変数 vを引数としてこの再帰の様式を閉じ込めたものです。

関数 foldl自体は再帰を用いて定義できます。

#code(haskell){{
foldl :: (a -> b -> a) -> a -> [b] -> a
foldl f v [] = v
foldl f v (x:xs) = foldl f (f v x) xs
}}

p.83

7.5 関数合成演算子

プレリュードで提供される「(.)」は、二つの関数を合成した関数を返す高階演算子です。

この演算子は以下のように定義できます。

#code(haskell){{
(.) :: (b -> c) -> (a -> b) -> (a -> c)
f . g = \x -> f (g x)
}}

関数合成のが結合則

適切な型を持つ任意の関数 f、g、hに対し、f . (g . h) = (f . g) .hが成り立ちます。



トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-08-28 (水) 22:56:17