タグ

Y combinatorに関するyuji1982のブックマーク (11)

  • y - 一生酩酊

    2007-04-25 C# 3.0 と不動点演算子 - NyaRuRuが地球にいたころ YCombinator について以前こちらで存在を知ったときは、結構気になったもののさっぱり意味不明だった。 寝かしておけばいい味になると思ってほったらかしにしていたが、 先日 y氏に会社で YCombinator っていうものがあるよ、と意味も分からず伝えたところ、 Y Combinatorが凄すぎる! - yuji1982の日記 id:amachang:20080124経由で流行みたいになってしまった。 おかげでもう一度挑戦してみる気になった。 しかし日ごろ手続きな自分にとってはなにか魔法のようで、関数単位で理解すべきだとは思いつつどうにも納得しづらいところがある。 http://d.hatena.ne.jp/shunsuk/20080202/1201938663 こちらで図解されているので十分な気

    y - 一生酩酊
    yuji1982
    yuji1982 2008/02/14
    おーーー!tさん^^ タイトルのyが僕のことだと勘違いした件w
  • Y Combinatorを直感的に理解。しようと試みる。 - このブログは証明できない。

    id:yuji1982さんのエントリ。 Y Combinatorが凄すぎる! - yuji1982の日記 なにこれ。Y Combinatorすげぇ!意味わからん。 今朝、からメールが来ました。 静かに歩く犬は犬じゃない。私の夢に出てきたフレーズ。 意味わからん。でも、それ以上にY Combinator意味わからん。 普通にフィボナッチ数を計算するプログラムは、こうですよね。 static int fib(int n) { if (n < 2) { return n; } else { return fib(n - 1) + fib(n - 2); } } これを、C#のクエリ式で書くと。 static int fib(int num) { Func<int, int> f = null; f = n => (n < 2) ? n : f(n - 1) + f(n - 2); return

    Y Combinatorを直感的に理解。しようと試みる。 - このブログは証明できない。
    yuji1982
    yuji1982 2008/02/02
    いいなー、僕たぶんIQ80ぐらいですw
  • 不動点演算子ふたたび - sumiiの日記

    (追記:Yコンビネータって何に使うの?) Yコンビネータ(Curryの不動点演算子)を説明するのがプチブーム(死語)らしいので、ふたたび挑戦。 まず、ふつーに再帰関数factをSchemeで定義してみる。 (define fact (lambda (n) (if (= n 0) 1 (* n (fact (- n 1))))))この定義は、右辺にfact自身が出現するので、再帰的定義なのであった。ここから右辺にfactが出現しないようにするのが目標。とりあえず、factを関数の引数として外から受け取るようにしてみる。 (define make-fact (lambda (my-fact) (lambda (n) (if (= n 0) 1 (* n (my-fact (- n 1)))))))これは( (make-fact fact) 10)みたく使えるが、make-factを呼び出す際に

    不動点演算子ふたたび - sumiiの日記
  • 2007-07-22

    C# 3.0 とラムダ計算のお話. 英語圏の C# 系 blog では,ラムダ計算が周期的に話題に上り,相互にゆるやかなクラスタを形成しているように感じます.『New Series on Closures in Visual Basic 9.0』というエントリが良い感じに Hub になっていますので,ここを出発点にすると良いでしょう. 今回は Mads Torgersen 氏の『Recursive lambda expressions』を参考に不動点演算子 Fix を作ってみます. public static class ExprUtil { public static class Fun<T> { public delegate U SelfApplicable<U>(SelfApplicable<U> self); public static SelfApplicable<Func<F

    2007-07-22
    yuji1982
    yuji1982 2008/01/27
    昔見たらイミフだったのに理解できた!スタックのこと考えてなかったなー、ますますF#に興味が!
  • 西尾泰和のブログ: Pythonで階乗を求める(Yコンビネータ編)

    Q: 「Pythonで階乗を求める(これはひどい)」はYコンビネータ? A: いいえ。 再帰呼び出しは普通、以下のように関数が自分自身の名前を使って自分自身を呼び出します。 >>> f = lambda n: n and n * f(n - 1) or 1 >>> f(5) 120 ここで、名前をつけずに、関数自体にも手を加えずに、再帰呼び出しを実現するための手段がYコンビネータです。再帰呼び出しを実現するだけならばYコンビネータは必須ではありません。 前回のコードはYコンビネータを使わずに再帰呼び出しをしています。具体的には、元の関数をnだけを受け取るのではなく、自分自身も引数fに受け取るようにし、また再帰呼び出しでfを呼び出す際にも引数にfを渡してやるようにしています。 Yコンビネータ版は以下。 >>> Y = lambda f:((lambda g: f(lambda x: g(g)

  • Y combinator - Wikipedia

    Y combinator may refer to: Y Combinator, an American tech startup accelerator Y combinator (mathematics), a fixed-point combinator This disambiguation page lists articles associated with the title Y combinator. If an internal link led you here, you may wish to change the link to point directly to the intended article.

  • http://ja.doukaku.org/55/flatten/

  • 平々毎々 (Hey hey, My my) | C#でYコンビネータ

    Yコンビネータっておもしろいなあ。ブログのねたにはちょうどいいかも。 static Func<T, T> Fix<T>(Func<Func<T, T>, Func<T, T>> F) { return t => F(Fix(F))(t); } で、こうなりました。 static public IEnumerable<int> Fib(int count) { foreach (int ii in Enumerable.Range(0, count)) yield return Fix((Func<Func<int, int>, Func<int, int>>) (ff => i => ((i これすっっげぇ・・(゜゜ で、でも使い方あってんのかわかんない; Y Combinatorが凄すぎる! - yuji1982の日記(改行を足しました) これは yie

    yuji1982
    yuji1982 2008/01/26
    ジェネリックの基本を忘れてた、恥ずかしい><
  • Y コンビネータって何? - IT戦記

    このエントリの 親友へ。ブログを書こう。 - IT戦記 y がブログを始めたみたいなので、読んでみた。 で、最新のエントリを読んでみたら、 Y コンビネータというものについて書いてあったので、 Y Combinatorが凄すぎる! - yuji1982の日記 Y コンビネータって何ってところから、自分でもいろいろ考えてみた。 結局なんなのかさっぱり分からなかったんですが、自分が考えたことをまとめておく まず、フィボナッチ数を求める fib を定義する var fib = function(n){ return (n <= 2) ? 1 : (arguments.callee(n-1) + arguments.callee(n-2)); }; fib(10); おお! JS すげー!名前は n しか使ってねーよ! めでたし、めでたし。。。。じゃなくて! JS が素晴らし過ぎて話が終わってしま

    Y コンビネータって何? - IT戦記
    yuji1982
    yuji1982 2008/01/26
    arguments.calleeがあるのに「さらに考える」をやめない。見習わないとφ(・ω・)
  • The Mellow Musings of Dr. T

    This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

    The Mellow Musings of Dr. T
  • Y Combinator - LoveRubyNet

    $Id: ycombinator.html,v 1.6 2002/06/27 23:37:39 aamine Exp $ [ruby-list:35058] に刺激を受けて Y combinator を解読してみた。 こんなもん読むくらいなら以下の参考ページを読んだほうがいい。 参考にした (というかほとんどそのままな) ページ (英語) http://www.ececs.uc.edu/~franco/C511/html/Scheme/ycomb.html 動機 再帰関数は再帰するときに自分自身を名前で呼ぶのが普通である。 これをなんとかして名前を使わず、関数そのものを呼ぶように させたい。 求めかた まず単純な fact (階乗) を以下に示す。言語は Scheme である。 (define fact (lambda (n) (if (zero? n) 1 (* n (fact (- n

  • 1