Non-Recursive Y Combinator

Run Settings
LanguageHaskell
Language Version
Run Command
type OpenRec x y = (x -> y) -> x -> y fact :: OpenRec Int Int fact x n = if n == 0 then 1 else n * x(n - 1) newtype Mu a = Mu (Mu a -> a) y :: OpenRec x y -> x -> y y f = (\h -> h $ Mu h) (\x -> f . (\(Mu g) -> g) x $ x) main = do print $ fact(fact(fact(undefined)))(2) print $ y(fact)(10)
Editor Settings
Theme
Key bindings
Full width
Lines