challenge 不動点演算子

不動点演算子とは、関数を引数に取り、その関数の不動点を返すような関数です。 つまり、不動点演算子である関数gが関数fを引数に取るとき、 f(g(f)) = g(f) となります。

お題は不動点演算子を実装することです。(Yコンビネータを実装しても結構ですが、それ以外でも、コンビネータになっていなくてもOKとします)

Posted feedbacks - Python

1
2
3
4
5
def Y(f):
  g = lambda proc: f(lambda arg: proc(proc)(arg))
  return g(g)

print Y(lambda f: lambda n: 1 if n < 2 else n * f(n - 1))(10)

Index

Feed

Other

Link

Pathtraq

loading...