I think I'd like to learn Clojure eventually, but at the moment am having fun with [Hy](http://docs.hylang.org/en/latest/), a "dialect of Lisp that's embedded in Python." (import socket) (defn echo-upper (sock) (.send c (.upper (.recv c 10000))) (.close c) ) (def s socket.socket) (.bind s (tuple ["" 8000])) (.listen s 5) (while True (echo-upper (.__getitem__ (s.accept) 0)) ) Python generated from ABS with [astor](https://pypi.python.org/pypi/astor/0.2.1): import socket def echo_upper(sock): c.send(c.recv(10000).upper()) return c.close() s = socket.socket s.bind(tuple([u'', 8000])) s.listen(5) while True: echo_upper(s.accept().__getitem__(0)) I'm not worried about not dealing with connections properly etc, I'd just like feedback on using lispy syntax. I'm tempted to do things like `((getattr s "bind") (tuple ["" 8000]))` because it looks more like simple Scheme, the only lisp I have a little experience with. Any thoughts on syntax and style? Any guidelines for dealing with Python APIs in a lispy way, something that apparently happens a lot in Clojure with Java?