Jestem nowy w świecie fixed-point combinators i domyślam się, że są one używane do powtarzania się na anonimowych lambdach, ale tak naprawdę nie musiałem ich używać, a nawet byłem w stanie całkowicie owinąć się wokół nich.Kombinatory z punktami stałymi
Widziałem przykład w JavaScript dla Y-combinator, ale nie udało się go pomyślnie uruchomić.
Chodzi o to, może ktoś podać intuicyjne odpowiedzi:
- Co stałoprzecinkowych kombinatorów, (nie tylko teoretycznie, ale w kontekście jakiegoś przykładu, aby odsłonić to, co dokładnie jest stały punkt w tym kontekście)?
- Jakie są inne rodzaje kombinatorów o ustalonym punkcie, poza kombinatorem Y?
Bonusowe Punkty: Jeżeli przykład nie jest tylko w jednym języku, najlepiej w Clojure, jak również.
UPDATE:
udało mi się znaleźć prosty przykład w Clojure, ale wciąż trudno zrozumieć Y Combinator sam:
(defn Y [r]
((fn [f] (f f))
(fn [f]
(r (fn [x] ((f f) x))))))
Choć przykładem jest zwięzły , Trudno mi zrozumieć, co dzieje się w funkcji. Pomocna będzie każda pomoc.
Zobacz także http://stackoverflow.com/a/15523799/1333025 –