タグ

ブックマーク / okapies.hateblo.jp (5)

  • 「関数型プログラミングって何?」日本語訳 - Okapies' Archive

    この記事は、技術翻訳 Advent Calendar 2016 の15日目です(枠が空いてたので勝手にお邪魔してます)。前回(6日目)は、id:msyksphinz さんの「個人が趣味技術書を翻訳するという意義について」でした。 今回ご紹介するのは、昨年末に公開された Kris Jenkins さん (@krisajenkins) の "What Is Functional Programming?" です。日語訳の公開については著者から承諾済みです。また、London Functional Programmers meetup での同タイトルの講演動画が公開されています。 関数型プログラミングの考え方は、世間ではどうも小難しい話だと思われている節があります。その理由の一つに、議論の抽象度が(比較的)高いことが挙げられるでしょう。例えば、以前このブログで紹介した「なぜ関数プログラミング

    「関数型プログラミングって何?」日本語訳 - Okapies' Archive
    efcl
    efcl 2016/12/18
    関数型プログラミングと副作用と副原因について
  • 「なぜ関数プログラミングは重要か」を要約してみた(その1) - Okapies' Archive

    関数型プログラミング (functional programming) の利点を説く際によく持ち出されるのが、QuickCheck の開発者の一人である John Hughes が 1984 年に著した論文 "Why Functional Programming Matters" だ。「なぜ関数プログラミングは重要か」という題名で日語訳もされているので、読んだことがある人も多いと思う。 要旨としては、冒頭の1章および2章で述べられている「関数型プログラミングが優れているのは、高階関数と遅延評価という、モジュール同士を貼り合わせる強力な『糊』を持っているからだ」という話がほぼ全てで、以降はそれを具体例に基づいて説明する構成になっている。ただ、その具体例として「数値計算アルゴリズム」やら「ゲーム人工知能アルゴリズム」やらの話が延々と続くし、しかもコード例が Haskell の先祖にあたる

    「なぜ関数プログラミングは重要か」を要約してみた(その1) - Okapies' Archive
    efcl
    efcl 2015/12/27
    「関数型プログラミングが優れているのは、高階関数と遅延評価という、モジュール同士を貼り合わせる強力な『糊』を持っているからだ」
  • ReactiveX と「普通のやつらの上を行け」の意外な関係 - Okapies' Archive

    これは「関数型プログラマのための Rx 入門」の補足記事です(タイトル変えた)。 前編、後編とお送りしてきたこの記事だが、特に後編について「何を言ってるのか分からん」というコメントを何人かの方から頂いた。…なんというか、ごめんなさい。 繰り返しになるが、Rx を使う上で関数型プログラミングの知識は必ずしも必要ではないし、むしろ(関数型のコンセプトが基礎にあるのに関わらず)知らなくても使えるようになっている。ライブラリの作者たちは「過度な抽象化は害になる」ということを弁えているのだろう。 しかし、Rx と関数型プログラミングの関係を把握しておくと、非同期データストリームのビルディング・ブロックの作り方について大いに視野が広がるだろう。もし、貴方がこの記事の前提となる「関数型」のパラダイムに興味をお持ちなら、まずは「関数プログラミング実践入門」をお勧めしたい。 関数プログラミング実践入門 ──

    ReactiveX と「普通のやつらの上を行け」の意外な関係 - Okapies' Archive
    efcl
    efcl 2015/03/24
    "Observable のアイデアはどこから来たのだろうか?" => "継続モナド (continuation monad) から着想を得たものであるらしい"
  • 関数型プログラマのための Rx 入門(前編) - Okapies' Archive

    概要 『Observable は単なる非同期データストリームにおけるモナドのインスタンスだよ。何か問題でも?』 まともな概要 つまり、Reactive Extensions (Rx) って何だ? ということでウェブをガサゴソと漁っていたところ、オンライン講義サービス Coursera の Principles of Reactive Programming に行き当たった。この講座では、Rx の主要開発者の一人である「双対おじさん」こと Erik Meijer 氏自らが一部の章を担当し、Rx の理論的側面を講義している。 この講座の大きな特徴は、Rx を(命令型プログラミングではなく)関数型プログラミング (FP) の側から解き明かしていくことにある。 こう書くと奇をてらっているように見えるかもしれないが、実際には Rx は FRP (Functional Reactive Program

    関数型プログラマのための Rx 入門(前編) - Okapies' Archive
    efcl
    efcl 2015/03/07
  • 翻訳: "Cake Pattern: The Bakery from the Black Lagoon" - Okapies' Archive

    はじめに NEScala 2013 での Daniel Spiewak (@djspiewak) さんの基調講演 "Cake Pattern: The Bakery from the Black Lagoon"(スライド、動画)*1の抄訳です。記事の公開については、講演者の Spiewak さん、および配信元である Marakana Inc. さんに許可を頂いています。Thank you for your great kindness! 講演者の Spiewak さんは、Scala のディープな活用で有名な Precog の開発に携わっている方です。”モナドはメタファーではない (Monads Are Not Metaphors)”の著者でもあります。 この講演は、昨年のブログ記事 "Existential Types FTW" の議論をさらに掘り下げたもので、Precog での "Ca

    efcl
    efcl 2013/07/18
    Cakeパターン
  • 1