I made a (very poor) lisp interpreter in Python: https://gist.github.com/jmikkola/b7c6c644dff1c07891c698f0a527a890
It's just powerful enough to let you define functions like map:
(def map
(fn (f lst)
(if (eq lst ())
()
(cons (f (head lst)) (map f (tail lst))))))
(def times-10 (fn (n) (* 10 n)))
(print (map times-10 (list 1 2 3 4 5)))