Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Inspired by "Programming with Nothing" http://experthuman.com/programming-with-nothing. See comment below for some details.
require './interface'
puts to_strings(->(limit) {
->(lst) {
->(f) {
->(f) {
->(g) {
->(n) {
f.(g.(g)).(n)
}
}.(->(g) {
->(n) {
f.(g.(g)).(n)
}
})
}.(->(part) {
->(lst) {
->(initial) {
->(f) {
->(p) {
p.(->(l) {
->(r) {
l
}
})
}.(lst).(initial).(->(x) {
f.(->(lst) {
->(p) {
p.(->(l) {
->(r) {
l
}
})
}.(->(p) {
p.(->(l) {
->(r) {
r
}
})
}.(lst))
}.(lst)).(part.(->(lst) {
->(p) {
p.(->(l) {
->(r) {
r
}
})
}.(->(p) {
p.(->(l) {
->(r) {
r
}
})
}.(lst))
}.(lst)).(initial).(f)).(x)
})
}
}
}
}).(lst).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(a) {
->(b) {
a
}
}).(->(a) {
->(b) {
a
}
})).(->(v) {
->(lst) {
->(item) {
->(lst) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(a) {
->(b) {
b
}
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(item).(lst))
}
}.(f.(v)).(lst)
}
})
}
}.(->(f) {
->(g) {
->(n) {
f.(g.(g)).(n)
}
}.(->(g) {
->(n) {
f.(g.(g)).(n)
}
})
}.(->(partial) {
->(lst) {
->(n) {
->(n) {
n.(->(x) {
->(a) {
->(b) {
b
}
}
}).(->(a) {
->(b) {
a
}
})
}.(n).(lst).(->(x) {
partial.(->(item) {
->(lst) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(a) {
->(b) {
b
}
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(item).(lst))
}
}.(n).(lst)).(->(n) {
->(p) {
p.(->(l) {
->(r) {
r
}
})
}.(n.(->(pair) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(p) {
p.(->(l) {
->(r) {
l
}
})
}.(pair))).(->(p) {
p.(->(l) {
->(r) {
l
}
})
}.(pair))
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(f) {
->(v) {
v
}
}).(->(f) {
->(v) {
v
}
})))
}.(n)).(x)
})
}
}
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(a) {
->(b) {
a
}
}).(->(a) {
->(b) {
a
}
})).(limit)).(->(n) {
->(n) {
n.(->(x) {
->(a) {
->(b) {
b
}
}
}).(->(a) {
->(b) {
a
}
})
}.(->(f) {
->(g) {
->(n) {
f.(g.(g)).(n)
}
}.(->(g) {
->(n) {
f.(g.(g)).(n)
}
})
}.(->(partial) {
->(a) {
->(b) {
->(a) {
->(b) {
->(bool) {
bool.(->(a) {
->(b) {
b
}
}).(->(a) {
->(b) {
a
}
})
}.(->(a) {
->(b) {
->(n) {
n.(->(x) {
->(a) {
->(b) {
b
}
}
}).(->(a) {
->(b) {
a
}
})
}.(->(a) {
->(b) {
b.(->(n) {
->(p) {
p.(->(l) {
->(r) {
r
}
})
}.(n.(->(pair) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(p) {
p.(->(l) {
->(r) {
l
}
})
}.(pair))).(->(p) {
p.(->(l) {
->(r) {
l
}
})
}.(pair))
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(f) {
->(v) {
v
}
}).(->(f) {
->(v) {
v
}
})))
}).(a)
}
}.(a).(b))
}
}.(b).(a))
}
}.(a).(b).(a).(->(x) {
partial.(->(a) {
->(b) {
b.(->(n) {
->(p) {
p.(->(l) {
->(r) {
r
}
})
}.(n.(->(pair) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(p) {
p.(->(l) {
->(r) {
l
}
})
}.(pair))).(->(p) {
p.(->(l) {
->(r) {
l
}
})
}.(pair))
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(f) {
->(v) {
v
}
}).(->(f) {
->(v) {
v
}
})))
}).(a)
}
}.(a).(b)).(b).(x)
})
}
}
}).(n).(->(f) {
->(v) {
f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(v)))))))))))))))
}
})).(->(item) {
->(lst) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(a) {
->(b) {
b
}
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(item).(lst))
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(f) {
->(v) {
f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(v))))))))))
}
})).(->(item) {
->(lst) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(a) {
->(b) {
b
}
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(item).(lst))
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(f) {
->(v) {
f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(v))))))))))
}
}))).(->(item) {
->(lst) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(a) {
->(b) {
b
}
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(item).(lst))
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(f) {
->(v) {
f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(v))))))))))
}
}))))).(->(item) {
->(lst) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(a) {
->(b) {
b
}
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(item).(lst))
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(f) {
->(v) {
f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(v))))))))))
}
}))))).(->(item) {
->(lst) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(a) {
->(b) {
b
}
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(item).(lst))
}
}.(->(f) {
->(v) {
f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(v))))))))))
}
}).(->(item) {
->(lst) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(a) {
->(b) {
b
}
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(item).(lst))
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(f) {
->(v) {
f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(v))))))))))
}
})))).(->(item) {
->(lst) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(a) {
->(b) {
b
}
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(item).(lst))
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(f) {
->(v) {
f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(v))))))))))
}
}))))).(->(item) {
->(lst) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(a) {
->(b) {
b
}
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(item).(lst))
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(f) {
->(v) {
f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(v))))))))))
}
}))))).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(a) {
->(b) {
a
}
}).(->(a) {
->(b) {
a
}
})))))))))).(->(n) {
n.(->(x) {
->(a) {
->(b) {
b
}
}
}).(->(a) {
->(b) {
a
}
})
}.(->(f) {
->(g) {
->(n) {
f.(g.(g)).(n)
}
}.(->(g) {
->(n) {
f.(g.(g)).(n)
}
})
}.(->(partial) {
->(a) {
->(b) {
->(a) {
->(b) {
->(bool) {
bool.(->(a) {
->(b) {
b
}
}).(->(a) {
->(b) {
a
}
})
}.(->(a) {
->(b) {
->(n) {
n.(->(x) {
->(a) {
->(b) {
b
}
}
}).(->(a) {
->(b) {
a
}
})
}.(->(a) {
->(b) {
b.(->(n) {
->(p) {
p.(->(l) {
->(r) {
r
}
})
}.(n.(->(pair) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(p) {
p.(->(l) {
->(r) {
l
}
})
}.(pair))).(->(p) {
p.(->(l) {
->(r) {
l
}
})
}.(pair))
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(f) {
->(v) {
v
}
}).(->(f) {
->(v) {
v
}
})))
}).(a)
}
}.(a).(b))
}
}.(b).(a))
}
}.(a).(b).(a).(->(x) {
partial.(->(a) {
->(b) {
b.(->(n) {
->(p) {
p.(->(l) {
->(r) {
r
}
})
}.(n.(->(pair) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(p) {
p.(->(l) {
->(r) {
l
}
})
}.(pair))).(->(p) {
p.(->(l) {
->(r) {
l
}
})
}.(pair))
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(f) {
->(v) {
v
}
}).(->(f) {
->(v) {
v
}
})))
}).(a)
}
}.(a).(b)).(b).(x)
})
}
}
}).(n).(->(f) {
->(v) {
f.(f.(f.(v)))
}
})).(->(item) {
->(lst) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(a) {
->(b) {
b
}
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(item).(lst))
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(f) {
->(v) {
f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(v))))))))))
}
})).(->(item) {
->(lst) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(a) {
->(b) {
b
}
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(item).(lst))
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(f) {
->(v) {
f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(v))))))))))
}
}))).(->(item) {
->(lst) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(a) {
->(b) {
b
}
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(item).(lst))
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(f) {
->(v) {
f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(v))))))))))
}
}))))).(->(item) {
->(lst) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(a) {
->(b) {
b
}
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(item).(lst))
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(f) {
->(v) {
f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(v))))))))))
}
}))))).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(a) {
->(b) {
a
}
}).(->(a) {
->(b) {
a
}
})))))).(->(n) {
n.(->(x) {
->(a) {
->(b) {
b
}
}
}).(->(a) {
->(b) {
a
}
})
}.(->(f) {
->(g) {
->(n) {
f.(g.(g)).(n)
}
}.(->(g) {
->(n) {
f.(g.(g)).(n)
}
})
}.(->(partial) {
->(a) {
->(b) {
->(a) {
->(b) {
->(bool) {
bool.(->(a) {
->(b) {
b
}
}).(->(a) {
->(b) {
a
}
})
}.(->(a) {
->(b) {
->(n) {
n.(->(x) {
->(a) {
->(b) {
b
}
}
}).(->(a) {
->(b) {
a
}
})
}.(->(a) {
->(b) {
b.(->(n) {
->(p) {
p.(->(l) {
->(r) {
r
}
})
}.(n.(->(pair) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(p) {
p.(->(l) {
->(r) {
l
}
})
}.(pair))).(->(p) {
p.(->(l) {
->(r) {
l
}
})
}.(pair))
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(f) {
->(v) {
v
}
}).(->(f) {
->(v) {
v
}
})))
}).(a)
}
}.(a).(b))
}
}.(b).(a))
}
}.(a).(b).(a).(->(x) {
partial.(->(a) {
->(b) {
b.(->(n) {
->(p) {
p.(->(l) {
->(r) {
r
}
})
}.(n.(->(pair) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(p) {
p.(->(l) {
->(r) {
l
}
})
}.(pair))).(->(p) {
p.(->(l) {
->(r) {
l
}
})
}.(pair))
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(f) {
->(v) {
v
}
}).(->(f) {
->(v) {
v
}
})))
}).(a)
}
}.(a).(b)).(b).(x)
})
}
}
}).(n).(->(f) {
->(v) {
f.(f.(f.(f.(f.(v)))))
}
})).(->(item) {
->(lst) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(a) {
->(b) {
b
}
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(item).(lst))
}
}.(->(f) {
->(v) {
f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(v))))))))))
}
}).(->(item) {
->(lst) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(a) {
->(b) {
b
}
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(item).(lst))
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(f) {
->(v) {
f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(v))))))))))
}
})))).(->(item) {
->(lst) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(a) {
->(b) {
b
}
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(item).(lst))
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(f) {
->(v) {
f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(v))))))))))
}
}))))).(->(item) {
->(lst) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(a) {
->(b) {
b
}
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(item).(lst))
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(f) {
->(v) {
f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(v))))))))))
}
}))))).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(a) {
->(b) {
a
}
}).(->(a) {
->(b) {
a
}
})))))).(->(f) {
->(g) {
->(n) {
f.(g.(g)).(n)
}
}.(->(g) {
->(n) {
f.(g.(g)).(n)
}
})
}.(->(part) {
->(result) {
->(n) {
->(a) {
->(b) {
->(n) {
n.(->(x) {
->(a) {
->(b) {
b
}
}
}).(->(a) {
->(b) {
a
}
})
}.(->(a) {
->(b) {
b.(->(n) {
->(p) {
p.(->(l) {
->(r) {
r
}
})
}.(n.(->(pair) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(p) {
p.(->(l) {
->(r) {
l
}
})
}.(pair))).(->(p) {
p.(->(l) {
->(r) {
l
}
})
}.(pair))
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(f) {
->(v) {
v
}
}).(->(f) {
->(v) {
v
}
})))
}).(a)
}
}.(a).(b))
}
}.(n).(->(f) {
->(v) {
f.(f.(f.(f.(f.(f.(f.(f.(f.(v)))))))))
}
}).(->(item) {
->(lst) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(a) {
->(b) {
b
}
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(item).(lst))
}
}.(n).(result)).(->(x) {
part.(->(item) {
->(lst) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(a) {
->(b) {
b
}
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(item).(lst))
}
}.(->(f) {
->(g) {
->(n) {
f.(g.(g)).(n)
}
}.(->(g) {
->(n) {
f.(g.(g)).(n)
}
})
}.(->(partial) {
->(a) {
->(b) {
->(a) {
->(b) {
->(bool) {
bool.(->(a) {
->(b) {
b
}
}).(->(a) {
->(b) {
a
}
})
}.(->(a) {
->(b) {
->(n) {
n.(->(x) {
->(a) {
->(b) {
b
}
}
}).(->(a) {
->(b) {
a
}
})
}.(->(a) {
->(b) {
b.(->(n) {
->(p) {
p.(->(l) {
->(r) {
r
}
})
}.(n.(->(pair) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(p) {
p.(->(l) {
->(r) {
l
}
})
}.(pair))).(->(p) {
p.(->(l) {
->(r) {
l
}
})
}.(pair))
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(f) {
->(v) {
v
}
}).(->(f) {
->(v) {
v
}
})))
}).(a)
}
}.(a).(b))
}
}.(b).(a))
}
}.(a).(b).(a).(->(x) {
partial.(->(a) {
->(b) {
b.(->(n) {
->(p) {
p.(->(l) {
->(r) {
r
}
})
}.(n.(->(pair) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(p) {
p.(->(l) {
->(r) {
l
}
})
}.(pair))).(->(p) {
p.(->(l) {
->(r) {
l
}
})
}.(pair))
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(f) {
->(v) {
v
}
}).(->(f) {
->(v) {
v
}
})))
}).(a)
}
}.(a).(b)).(b).(x)
})
}
}
}).(n).(->(f) {
->(v) {
f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(v))))))))))
}
})).(result)).(->(f) {
->(g) {
->(n) {
f.(g.(g)).(n)
}
}.(->(g) {
->(n) {
f.(g.(g)).(n)
}
})
}.(->(part) {
->(num) {
->(denom) {
->(a) {
->(b) {
->(n) {
n.(->(x) {
->(a) {
->(b) {
b
}
}
}).(->(a) {
->(b) {
a
}
})
}.(->(a) {
->(b) {
b.(->(n) {
->(p) {
p.(->(l) {
->(r) {
r
}
})
}.(n.(->(pair) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(p) {
p.(->(l) {
->(r) {
l
}
})
}.(pair))).(->(p) {
p.(->(l) {
->(r) {
l
}
})
}.(pair))
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(f) {
->(v) {
v
}
}).(->(f) {
->(v) {
v
}
})))
}).(a)
}
}.(a).(b))
}
}.(denom).(num).(->(x) {
->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(part.(->(a) {
->(b) {
b.(->(n) {
->(p) {
p.(->(l) {
->(r) {
r
}
})
}.(n.(->(pair) {
->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(n) {
->(f) {
->(v) {
f.(n.(f).(v))
}
}
}.(->(p) {
p.(->(l) {
->(r) {
l
}
})
}.(pair))).(->(p) {
p.(->(l) {
->(r) {
l
}
})
}.(pair))
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(f) {
->(v) {
v
}
}).(->(f) {
->(v) {
v
}
})))
}).(a)
}
}.(num).(denom)).(denom)).(x)
}).(->(f) {
->(v) {
v
}
})
}
}
}).(n).(->(f) {
->(v) {
f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(v))))))))))
}
})).(x)
})
}
}
}).(->(l) {
->(r) {
->(f) {
f.(l).(r)
}
}
}.(->(a) {
->(b) {
a
}
}).(->(a) {
->(b) {
a
}
})).(n))))
})
}.(->(f) {
->(v) {
f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(f.(v))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
}
}) )
######################################################################
# Lambda-Calculus to Ruby Interface Methods
######################################################################
def to_integer(lex)
lex.(->(n) { n + 1 }).(0)
end
def to_boolean(lex)
lex.(true).(false)
end
def pair_left(pair)
pair.(->(a) { ->(b) { a } } )
end
def pair_right(pair)
pair.(->(a) { ->(b) { b } } )
end
def list_empty?(lst)
to_boolean(pair_left(lst))
end
def list_head(lst)
pair_left(pair_right(lst))
end
def list_tail(lst)
pair_right(pair_right(lst))
end
def to_list(lst)
result = []
while ! list_empty?(lst)
result << list_head(lst)
lst = list_tail(lst)
end
return result
end
def to_integers(lst)
to_list(lst).map { |x| to_integer(x) }
end
def to_char(n)
"0123456789BFiuz"[to_integer(n)]
end
def to_string(s)
to_list(s).map { |c| to_char(c) }.join
end
def to_strings(lst)
to_list(lst).map { |x| to_string(x) }
end
@jimweirich

This comment has been minimized.

Show comment Hide comment
@jimweirich

jimweirich Jul 9, 2012

Inspired by Tom Stuart's "Programming with Nothing" (http://experthuman.com/programming-with-nothing), although I did my own implementation. It runs in under a minute on my Macbook Pro.

This was originally written using constants for code snippets (just like Tom Stuart did). I then wrote a "compiler" that read the individual snippets and built the complete lambda expression from scratch. Then I ran the expression through Ripper and Sorcerer to get the indented version of the code you see here.

I'm adding annotations to the original source code file and will release that when its done.

Oh, you want to know what it does? Either read Tom Stuart's original article, or just run the code (which will take a minute or so).

Owner

jimweirich commented Jul 9, 2012

Inspired by Tom Stuart's "Programming with Nothing" (http://experthuman.com/programming-with-nothing), although I did my own implementation. It runs in under a minute on my Macbook Pro.

This was originally written using constants for code snippets (just like Tom Stuart did). I then wrote a "compiler" that read the individual snippets and built the complete lambda expression from scratch. Then I ran the expression through Ripper and Sorcerer to get the indented version of the code you see here.

I'm adding annotations to the original source code file and will release that when its done.

Oh, you want to know what it does? Either read Tom Stuart's original article, or just run the code (which will take a minute or so).

@jimweirich

This comment has been minimized.

Show comment Hide comment
@jimweirich

jimweirich Jul 12, 2012

You can see a annotated version of this at https://github.com/jimweirich/lambda_fizz

Owner

jimweirich commented Jul 12, 2012

You can see a annotated version of this at https://github.com/jimweirich/lambda_fizz

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