4 ms·
It's easier to remember if you use a more common notation: (Y(f))(x) = f(f(f(...(x)...))) Or express it in python, which is still a bit weird but probably
by bloppe 2y ago
It's easier to remember if you use a more common notation:
(Y(f))(x) = f(f(f(...(x)...)))
Or express it in python, which is still a bit weird but probably still more readable than pure LC to pretty much everybody:
def Y(f):
return lambda x: f(Y(f)(x))
- tromp 2y ago> (Y(f))(x) = f(f(f(...(x)...))) I think that should be (Y(f))(x) = f(f(f(...)))(x)
- bloppe 2y agoThink of f as a function that takes a value and returns a value. Y takes a function and returns a function. Y(f) returns a new function that takes a value and applies f to it, recursively forever, ultimately converging on a value (or infinity). In your example, f(...) would have to return a function that is then applied to x. I realize there are no non-function values in LC.
- chabska 2y agoThat misses the whole point, in that you cannot refer to Y inside of Y in an environment that doesn't have recursion.
- bloppe 2y agoFair enuf