matarillo #5680(2008/02/04 23:16 GMT) Rating2/4=0.50
不動点演算子とは、関数を引数に取り、その関数の不動点を返すような関数です。 つまり、不動点演算子である関数gが関数fを引数に取るとき、 f(g(f)) = g(f) となります。
お題は不動点演算子を実装することです。(Yコンビネータを実装しても結構ですが、それ以外でも、コンビネータになっていなくてもOKとします)
see: Wikipedia
[ reply ]
matyr #5740(2008/02/11 17:04 GMT) [ Io ] Rating0/0=0.00
括弧の拡張機能を使って #5731 と #5733 の写経。(Yコンビネータは理解してない。)
1 2 3 4 5 6 7 8 9
Object do( curlyBrackets := getSlot("block")) Block do( squareBrackets := getSlot("call")) Y := { f, { g, f[{ a, g[g][a] }] }[ { g, f[{ a, g[g][a] }] }] } Y[{ b, { n, if(n < 2, 1, n * b[n - 1]) } }][10] println
Rating0/0=0.00-0+
matarillo
#5680()
Rating2/4=0.50
不動点演算子とは、関数を引数に取り、その関数の不動点を返すような関数です。 つまり、不動点演算子である関数gが関数fを引数に取るとき、 f(g(f)) = g(f) となります。
お題は不動点演算子を実装することです。(Yコンビネータを実装しても結構ですが、それ以外でも、コンビネータになっていなくてもOKとします)
see: Wikipedia
[ reply ]