タグ

2016年4月26日のブックマーク (2件)

  • 関数型プログラミング入門 | POSTD

    多くの関数型プログラミングに関する記事が教えてくれるのは、抽象的な関数型のテクニックです。つまり関数合成やパイプライン、高階関数などです。この記事では違います。ここでは、プログラマが毎日書く、命令型で非関数型のコードの例を示し、それを関数型の形式へ書き換えます。 最初のセクションでは、短いデータ変換のループを取り上げ、map関数やreduce関数に書き換えていきます。2つ目のセクションではより長いループを取り上げ、ユニットに分解し、それぞれのユニットを関数型に書き換えます。3つ目のセクションでは、連続した長いデータ変換のループを関数型のパイプラインに分解します。 ここではPythonでの例を取り扱います。というのも多くのプログラマはPythonを読むのは簡単だと思っているからです。多くの例では、mapやreduce、パイプラインなどの多くの言語に共通する機能を例示するため、Python的な

    関数型プログラミング入門 | POSTD
  • 関数型プログラミングはまず考え方から理解しよう

    関数型プログラミングが注目されて久しいです。 そろそろ勉強しておかないとなぁということで調べてみるものの、情報として出てくるのは"高階関数","カリー化","遅延評価","モナド"などの物々しい単語の数々。これらを勉強して理解した気になったものの、プログラムを書こうと思うと全然書けませんでした。 結局、関数型言語を実現する手段を学ぶ前に関数型と言われるパラダイムを理解しないことには書けません。ということでここでは関数型プログラミングの"手法"ではなく、オブジェクト指向と関数型プログラミングを比較しながら考え方の違いを見ていきます。 日の例題 プログラミング課題を設定してオブジェクト指向と関数型で解答してみましょう。 課題: 唐揚げ弁当がいくつかあるとします。それぞれ唐揚げが複数入っています。 この中からx個の唐揚げをつまみいするプログラムを作りましょう。 つまみいはバレないようにする

    関数型プログラミングはまず考え方から理解しよう
    royzumi
    royzumi 2016/04/26
    コメント荒れてるけど、個人的にはなるほどと思った