Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

combinatoryに関するfaerieのブックマーク (4)

  • Rubyのある風景 - umpjld oalrc

    9VX3r1 <a href="http://epipnsixggyu.com/">epipnsixggyu</a>, [url=http://ivfrgvzsfngb.com/]ivfrgvzsfngb[/url], [link=http://mnvkocupttpe.com/]mnvkocupttpe[/link], http://qttyplizphzt.com/

    faerie
    faerie 2006/03/03
    S と K で Y を実装。
  • Rubyのある風景 - Y Combinator

    再帰的な関数を作るときに関数に名前をつけずに定義するにはどうしたらいいのかというのが、Y Combinatorの中心的な話題です。 まずは、再帰の定番、階乗を計算する関数に登場願いましょう。 fact = lambda{|n| if n < 2 1 else n * fact[n - 1] end } puts fact[10] ここからfactという名前を取り除こうというわけですね。 最終目標は、以下のようにして階乗を計算する関数を定義することができるようになることです。 fact = y[lambda{|h| lambda{|n| if n < 2 1 else n * h[n - 1] end } ] ) puts fact[10] ここで出てきたyが、Y Combinatorと呼ばれるものです。 見やすさの為に、factという名前をつけましたが、関数を定義するところではfact

    faerie
    faerie 2006/03/03
    よくわからないので ocaml で書き直してみたい。
  • Unlambda

    Your Functional Programming Language Nightmares Come True. 関数型言語の悪夢がやってくる Unlambdaについて 公式サイト: http://www.eleves.ens.fr:8080/home/madore/programs/unlambda/ Unlambdaは、obfuscated programming languages (混乱させるプログラム言語、といったところでしょうか) の一種として開発された言語です。 しかしただそれだけではなく、純粋関数型言語というもう一つの特徴も持っています。 そのためオブジェクトは関数しかなく、数値や文字列などというものは(組み込みでは)存在しません。 しかしこの極限的な状況でのプログラムには、実に楽しいものがあります。 このページでは、そんなUnlambdaのプログラミングの解説を行い

    faerie
    faerie 2006/03/03
    べんきょうになる。
  • SKK Openlab - SKK = I

    SKK の名前を考えたときに Combinatory Logic での有名な等式 SKK = I が念頭にあったのは事実です.ずい分昔に Henk Barendregt さんにこの話をしたこともありました.Combinatory Logic は一般にはあまり知られていないので簡単に紹介をしてみます. Combinatory Logic は,λ計算と同様,すべての項 (term, 計算機の言葉で言えば,プログラムに相当するもの)が関数であるような体系である.Logic という名前がついているのは,その上に論理を展開することを目的としていたからであるが,論理の体系としては成功しなかった.しかし,λ計算と密接な関係があることから,計算の体系としては重要なものである. Combinatory Logic の項 (combinator) は以下の文法規則で定義される. 項 ::= 変数 | 定数 |

    faerie
    faerie 2006/03/03
    ocaml だと let s a b c = (a c)(b c);; let k a b = a;; let i a = a;; (i 765) = (s k k 765);;
  • 1