代表技術通信~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
08/17(月)20:00~ 【初心者向け】GASで学ぶWebアプリ – GASと外部API連携でWebアプリに情報を表示しよう
2026/08/17 (月) 20:00 ~ 21:00
無料
オンライン
08/03(月)20:00~ 【初心者向け】AI駆動開発体験会 – AI駆動開発の流れとClaude Codeの基本操作
2026/08/03 (月) 20:00 ~ 21:00
無料
オンライン
07/13(月)20:00~ 【初心者向け】GASで学ぶWebアプリ – 複雑な動作も実現できるJavaScriptの基礎を学ぼう
2026/07/13 (月) 20:00 ~ 21:00
無料
オンライン
07/06(月)20:00~ 【初心者向け】AI駆動開発を学ぶ – AIと話すだけで、あなたのWebページを作ってみよう
2026/07/06 (月) 20:00 ~ 21:00
無料
オンライン
06/15(月)20:00~ 【初心者向け】GASで学ぶWebアプリ – GASを使って簡単な掲示板サイトを作ってみよう
2026/06/15 (月) 20:00 ~ 21:00
無料
オンライン