Skip to content

Instantly share code, notes, and snippets.

@podhmo
Created August 24, 2013 08:33
Show Gist options
  • Save podhmo/6326912 to your computer and use it in GitHub Desktop.
Save podhmo/6326912 to your computer and use it in GitHub Desktop.
# -*- coding:utf-8 -*-
from __future__ import print_function
fizzbuzz = (lambda branch, const, remzero, identity: (lambda k : branch(k)(remzero(15), const("fizzbuzz"), (lambda k : branch(k)(remzero(3), const("fizz"), (lambda k : branch(k)(remzero(5), const("buzz"), identity)))))))((lambda k : (lambda pred, succ, fail: (lambda n : succ(k)(n) if pred(n) else fail(k)(n)))), (lambda x: (lambda k : (lambda _: k(x)))), (lambda x : (lambda n : n % x == 0)), (lambda k : (lambda n : k(n))))
for i in range(1, 101):
fizzbuzz(print)(i)
@tokibito
Copy link

@podhmo++

# -*- coding:utf-8 -*-
from __future__ import print_function

fizzbuzz = (
    lambda branch, const, remzero, identity: (
        lambda k : branch(k)(remzero(15), const("fizzbuzz"), (
            lambda k : branch(k)(remzero(3), const("fizz"), (
                lambda k : branch(k)(remzero(5), const("buzz"), identity)
            ))
        ))
    )
)(
    (
        lambda k : (
            lambda pred, succ, fail: (
                lambda n : succ(k)(n) if pred(n) else fail(k)(n)
            )
        )
    ), (
        lambda x: (
            lambda k : (
                lambda _: k(x)
            )
        )
    ), (
        lambda x : (
            lambda n : n % x == 0
        )
    ), (
        lambda k : (
            lambda n : k(n)
        )
    )
)

for i in range(1, 101):
    fizzbuzz(print)(i)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment