タグ

ブックマーク / haxis-fx.hatenadiary.org (2)

  • Arrowの話をしよう (2)不動点と再帰 - haxis_fxの日記

    今回圏論の話は出ません。 関数型言語勉強の中に、不動点コンビネータは避けては通れない道ですね。不動点とかなんとなく難しい印象がありますが、意外に簡単です。以下は定義(Wikipediaから): 関数 f の不動点とは、関数 f(x) = x を満たすような x のことという。 不動点コンビネータ fix とは、下記のように関数 f の不動点を返すような高階関数 fix のこと。 fix(f) = f(fix(f)) 不動点は中学の連立方程式の知識さえあれば誰でも計算できるんだろう: f(x) = x f(x) = 42 => x = 42 f(x) = x f(x) = x^2 => x^2 - x = 0 => x(x - 1) = 0 => x = 0 or x = 1 そして不動点コンビネータはこの不動点を計算してくれる関数のこと。全然難しくないでしょう? Haskellでは遅延評価

    Arrowの話をしよう (2)不動点と再帰 - haxis_fxの日記
  • Arrowの話をしよう (1)ArrowとArrow記法 - haxis_fxの日記

    Q: そんなタイトルで大丈夫か? A: 大丈夫だ、問題ない。 Q: Arrowってなに? A: あれは今から36万…いや、1万4千年前だったか…まぁいい、私にとってはつい昨日の出来事だが、君たちにとっては多分明日の出来事だ。彼には72通りの名前があるから、なんて呼べばいいのか…確か最初に会ったときは、Morphism… ... こめんなさい…今のは真っ赤な嘘です… http://www.haskell.org/arrows/ から引用: Arrows are a new abstract view of computation, defined by John Hughes [Hug00]. They serve much the same purpose as monads -- providing a common structure for libraries -- but are

    Arrowの話をしよう (1)ArrowとArrow記法 - haxis_fxの日記
  • 1