Skip to content

Instantly share code, notes, and snippets.

@macobo
Created May 5, 2013 22:00
Show Gist options
  • Select an option

  • Save macobo/5522354 to your computer and use it in GitHub Desktop.

Select an option

Save macobo/5522354 to your computer and use it in GitHub Desktop.
Calculating coin change in python
((lambda f:(lambda x: f(lambda v: x(x)(v)))(lambda x: f(lambda v: x(x)(v))))(lambda rec: lambda amount: lambda coins: lambda taken:((lambda boolean: boolean)((lambda a: lambda b:((lambda a: lambda b:((lambda boolean: boolean)(a)(b)((lambda a: lambda b: b))))((lambda a: lambda b:((lambda num: num(lambda x:((lambda a: lambda b: b)))((lambda a: lambda b: a)))((lambda a: lambda b: b((lambda num: lambda f: lambda x: num(lambda g: lambda h: h(g(f)))(lambda y: x)(lambda y: y)))(a))(a)(b))))(a)(b))((lambda a: lambda b:((lambda num: num(lambda x:((lambda a: lambda b: b)))((lambda a: lambda b: a)))((lambda a: lambda b: b((lambda num: lambda f: lambda x: num(lambda g: lambda h: h(g(f)))(lambda y: x)(lambda y: y)))(a))(a)(b))))(b)(a))))(amount)((((lambda f:(lambda x: f(lambda v: x(x)(v)))(lambda x: f(lambda v: x(x)(v))))(lambda rec: lambda f: lambda init: lambda lst:((lambda boolean: boolean)(((lambda pair: pair((lambda a: lambda b: a))))(lst))(init)(lambda x: f((lambda lst:((lambda pair: pair((lambda a: lambda b: a)))((lambda pair: pair((lambda a: lambda b: b)))(lst))))(lst))(rec(f)(init)((lambda lst:((lambda pair: pair((lambda a: lambda b: b)))((lambda pair: pair((lambda a: lambda b: b)))(lst))))(lst)))(x)))))((lambda a: lambda b: a((lambda num: lambda f: lambda x: f(num(f)(x))))(b)))((lambda f: lambda x: x)))(taken)))(taken)((lambda boolean: boolean)(((lambda pair: pair((lambda a: lambda b: a))))(coins))(((lambda head: lambda tail: lambda f: f(head)(tail))((lambda a: lambda b: a))((lambda a: lambda b: a))))(lambda x:((lambda a: lambda b:((lambda boolean: boolean)((lambda a: lambda b:((lambda boolean: boolean)(a)((lambda a: lambda b: a))(b)))(((lambda pair: pair((lambda a: lambda b: a))))(b))((lambda a: lambda b:((lambda boolean: boolean)(a)(b)((lambda a: lambda b: b))))((lambda a:((lambda boolean: boolean)(a)((lambda a: lambda b: b))((lambda a: lambda b: a))))(((lambda pair: pair((lambda a: lambda b: a))))(a)))((lambda a: lambda b:((lambda num: num(lambda x:((lambda a: lambda b: b)))((lambda a: lambda b: a)))((lambda a: lambda b: b((lambda num: lambda f: lambda x: num(lambda g: lambda h: h(g(f)))(lambda y: x)(lambda y: y)))(a))(a)(b))))((((lambda f:(lambda x: f(lambda v: x(x)(v)))(lambda x: f(lambda v: x(x)(v))))(lambda rec: lambda f: lambda init: lambda lst:((lambda boolean: boolean)(((lambda pair: pair((lambda a: lambda b: a))))(lst))(init)(lambda x: f((lambda lst:((lambda pair: pair((lambda a: lambda b: a)))((lambda pair: pair((lambda a: lambda b: b)))(lst))))(lst))(rec(f)(init)((lambda lst:((lambda pair: pair((lambda a: lambda b: b)))((lambda pair: pair((lambda a: lambda b: b)))(lst))))(lst)))(x)))))(lambda _:((lambda a: lambda b: a((lambda num: lambda f: lambda x: f(num(f)(x))))(b))((lambda f: lambda x: f(x)))))((lambda f: lambda x: x)))(a))((((lambda f:(lambda x: f(lambda v: x(x)(v)))(lambda x: f(lambda v: x(x)(v))))(lambda rec: lambda f: lambda init: lambda lst:((lambda boolean: boolean)(((lambda pair: pair((lambda a: lambda b: a))))(lst))(init)(lambda x: f((lambda lst:((lambda pair: pair((lambda a: lambda b: a)))((lambda pair: pair((lambda a: lambda b: b)))(lst))))(lst))(rec(f)(init)((lambda lst:((lambda pair: pair((lambda a: lambda b: b)))((lambda pair: pair((lambda a: lambda b: b)))(lst))))(lst)))(x)))))(lambda _:((lambda a: lambda b: a((lambda num: lambda f: lambda x: f(num(f)(x))))(b))((lambda f: lambda x: f(x)))))((lambda f: lambda x: x)))(b)))))(a)(b)))(rec(amount)((lambda lst:((lambda pair: pair((lambda a: lambda b: b)))((lambda pair: pair((lambda a: lambda b: b)))(lst))))(coins))((lambda el: lambda lst:((lambda head: lambda tail: lambda f: f(head)(tail))((lambda a: lambda b: b))((lambda head: lambda tail: lambda f: f(head)(tail))(el)(lst))))((lambda lst:((lambda pair: pair((lambda a: lambda b: a)))((lambda pair: pair((lambda a: lambda b: b)))(lst))))(coins))(taken)))(rec(amount)((lambda lst:((lambda pair: pair((lambda a: lambda b: b)))((lambda pair: pair((lambda a: lambda b: b)))(lst))))(coins))(taken)))(x))))))((lambda f: lambda x: f(f(f(f(f(f(f(f(f(f(x))))))))))))(RANGE((lambda f: lambda x: f(x)))(((lambda num: lambda f: lambda x: f(num(f)(x)))((lambda f: lambda x: f(f(f(f(f(x))))))))))(((lambda head: lambda tail: lambda f: f(head)(tail))((lambda a: lambda b: a))((lambda a: lambda b: a))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment