Python3でSICPの、LISPの方言Scheme的なコードを書く。

Python3 コード

>>> from operator import add, sub, mul
>>> def square(x):
...     return mul(x, x)
... 
>>> square(3)
9
>>> square(add(2, 3))
25
>>> def sum_squares(x, y):
...     return add(square(x), square(y))
... 
>>> sum_squares(5, 5)
50
>>> sum_squares(3, 4)
25
>>> sum_squares(5, 12)
169
>>> add(add(2, mul(3, 4)), 6)
20
>>> mul(add(5, 5), add(5, 5))
100

最高だな。