不動点コンビネータによる方法
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/09/06 16:36 UTC 版)
「無名再帰」の記事における「不動点コンビネータによる方法」の解説
詳細は「不動点コンビネータ#不動点コンビネータによる再帰の実現」を参照 Haskell では以下のように書く。fix が不動点コンビネータ。ラムダ式で引数 rec を余分持っておき、rec を自分自身として参照するように記述する。すると、無名再帰となる。 fix (\rec n -> if n == 0 then 1 else n * rec (n - 1)) 5 == 120 JavaScript では Zコンビネータ(下記関数Z)を使用して以下のようにも書ける。 function Z(f) { return (function(x) { return f(function(y) { return x(x)(y); }); })(function(x) { return f(function(y) { return x(x)(y); }); });} Z(function(f) { return function(n) { return n == 0 ? 1 : n * f(n - 1); }; })(5) == 120
※この「不動点コンビネータによる方法」の解説は、「無名再帰」の解説の一部です。
「不動点コンビネータによる方法」を含む「無名再帰」の記事については、「無名再帰」の概要を参照ください。
- 不動点コンビネータによる方法のページへのリンク