タグ

関数型に関するpapiroのブックマーク (3)

  • なぜfor文は禁止なのか?関数型記述のススメ - Qiita

    var totalOfEvenNumberUnder100 = 0; for (var i = 0; i < 100; i++) { if (i % 2 === 0) { totalOfEvenNumberUnder100 += i; } } 命題に、「繰り返す」という文字がないのに、forで繰り返しています。手続き型に慣れたプログラマは、もう違和感を感じなくなってしまっているかもしれませんが、なぜ繰り返すのでしょうか。0から100未満の数字がほしいだけなのに。 また、最初に0で変数を初期化するのも命題にはありません。 さらには、偶数のみを取り出す処理と足す処理が交互に行われることになっています。偶数のみを累計する、という命題とは違う処理になってしまっています。 もちろん答えは一緒ですが、命題とは別の処理になってしまっているともいえます。 推奨 できるだけ処理に名前をつけていきます。 命題

    なぜfor文は禁止なのか?関数型記述のススメ - Qiita
  • シェル芸とHaskellの対応を考える – 上田ブログ

    どうも上田です。眠気1000%でお送り致します。 かねてからシェル芸は関数型と主張しているので、主張の中身を一つ一つ具体的にしようとしております。眠いので。 まずは、ワンライナーでよく出てくるコマンドとHaskellの関数の対応表を作ってみようと思います。眠いので。 データ n行のテキストデータ = Haskellのリスト(要素数n)に相当。 ###以下の「list」が等価### $ cat list a b c Prelude> let list = ["a","b","c"] Prelude> list ["a","b","c"] n行m個のテキストデータ = m要素のリストがn個入っているリスト。 ###以下の「mat」が等価### uedambp:~ ueda$ cat mat a b c d Prelude> let mat = [["a","b"],["c","d"]] Pre

  • 関数型プログラミングに目覚めた! IQ145の女子高生の先輩から受けた特訓5日間

    登場人物 セキヤ 高1男子。都内の進学校に通っている。 プログラミングが趣味でコンピュータ部に入部した。 サクラ 高2女子。IQ145の知能を持つ美少女。 セキヤの学校のコンピュータ部の先輩で、セキヤを厳しく指導する。 コンピュータ部では、いち早く頭角を現し、現在は高3部員を差し置いて部長として君臨する絶対的存在。 プログラミングスキルは『神の眼』と呼ばれる全能レベルにまで到達していると一部では噂されているが、サクラのコードを読み解けるだけのスキルをもつ人材が部内にいない為、今のところ真相は不明である。 出版にあたって ▼『関数型プログラミングに目覚めた!IQ145の女子高生の先輩から受けた特訓5日間』 という当ブログエントリのタイトルの書籍名で、秀和システムより筆者の著書が出版されます。 ▼発行日は、2015年5月1日ですが、実際にリアル書店の店頭に並ぶのは、4月23日(木)前後になるそ

    関数型プログラミングに目覚めた! IQ145の女子高生の先輩から受けた特訓5日間
  • 1