代表技術通信~Get Programming with Haskell⑪
草場代表
2020/12/08
こんばんは。代表の草場です。
Haskell触ります。「Get Programming with Haskell」についてです。レッスン9です。
レッスン9. 高次関数
レッスン9を読んだ後は
高次関数を理解する
明示的に再帰的な関数の記述を避けるために map, filter, foldl を使用します。
多くの高次関数を自分で実装するが理解できます。
今までさまざまな再帰関数を見ました。練習すれば再帰的なコードを書くことは容易になりますが、多くの関数は全く同じパターンの再帰を共有しています。
したがって、この再帰を、再帰について明示的に考える必要のない、一般的に使用される少数の関数に抽象化することができます。再帰的なコードを書くという課題に対する実際的な答えは、高次関数と呼ばれる関数群の一部である既存の関数を使用することです。
高次関数とは、別の関数を引数に取る関数のことです。一般的に、高次関数のほとんどすべては、再帰の一般的なパターンを抽象化するために使用されます。
再帰関数を書くのをはるかに簡単にする高次関数を見ていきます。
次のことを考えてみてください。リストの各メンバにそれぞれ3を加え、リストの各メンバに3を乗算するadd3ToAllとmul3byAllの2つの関数を紹介します。
add3ToAll [] = []
add3ToAll (x:xs) = (3 + x):add3ToAll xs
mul3ByAll [] = []
mul3ByAll (x:xs) = (3 * x):mul3ByAll xs
どちらの関数も書きやすく理解しやすく,ほぼ同じ構造を共有しています.
b
今日はここまで。
この記事を書いた人
草場代表
エディター
EVENTS
11/25(月)20:00~ 【初心者向け】GASとGoogleスプレッドシートを使ってToDoリスト・メールリマインドシステムを作ってみよう
2024/11/25 (月) 20:00 ~ 21:00
無料
オンライン
11/11(月)20:00~ 【初心者向け】GASとGoogleスプレッドシートを使ってToDoリスト・メールリマインドシステムを作ってみよう
2024/11/11 (月) 20:00 ~ 21:00
無料
オンライン
シンギュラリティ・ラボ Meetup ~入会オリエンテーション~【10月09日】
2024/10/09 (水) 20:00~21:00
無料
オンライン開催
シンギュラリティ・ラボ Meetup ~入会オリエンテーション~【10月02日】
2024/10/02 (水) 20:00~21:00
無料
オンライン開催
10/21(月)20:00~ 【初心者向け】GASとGoogleカレンダーを使ってスケジュール一括登録システムを作ってみよう
2024/10/21 (月) 20:00 ~ 21:00
無料
オンライン