Hy
Cuddles the cuttlefish | |
Paradigm | Multi-paradigm: procedural, functional, object-oriented, meta, reflective, generic |
---|---|
Family | Lisp |
Designed by | Paul Tagliamonte |
First appeared | 2013 |
Preview release | 0.11.0 |
Scope | lexical, optionally dynamic |
OS | Cross-platform |
Filename extensions | .hy |
Website |
hylang |
Hy (alternately, Hylang) is a dialect of the Lisp programming language designed to incorporate with Python by translating expressions into Python's abstract syntax tree (AST). Similar to Clojure's mapping of s-expressions onto the JVM,[1] Hy is meant to operate as a transparent Lisp front end to Python's abstract syntax.[2] Hy also allows for Python libraries (including the standard library) to be imported and accessed alongside Hy code with a compilation[note 1] step converting the data structure of both into Python's AST.[3][4]
Because Lisp allows for operating on code as data, Hy can be used to write domain-specific languages.[5]
Hy is compatible with Python 2.6 to 3.4 and multiple Python interpreters (e.g. PyPy).[4] Hy was introduced at PyCon 2013 by Paul Tagliamonte.[6]
Example code
=> (print "Hy!")
Hy!
=> (defn salutationsnm [name] (print (+ "Hy " name "!")))
=> (salutationsnm "YourName")
Hy YourName!
See also
Notes
- ↑ "Compiled" is a term which may apply to expressing Hy code in Python's AST or converting that AST into bytecode, the latter being dependent on the particular Python interpreter used and not Hy.
References
- ↑ Turto, Tuukka (14 February 2014). "Programming Can Be Fun with Hy". Open Source For You. Retrieved 2 September 2014.
- ↑ Edge, Jake (30 April 2014). "Getting Hy on Python". LWN.net. Retrieved 2 September 2014.
- ↑ "Hy Documentation". hylang.org. Retrieved 3 September 2014.
- 1 2 Danjou, Julien (26 March 2014). "The AST". The Hacker's Guide to Python. pp. 165–172.
- ↑ Paul Tagliamonte (11 April 2014). Getting Hy on Python: How to implement a Lisp front-end to Python (Speech). PyCon. Montreal. Retrieved 2 September 2014.
- ↑ Paul Tagliamonte (2 April 2013). PyCon lightning talk (Speech). PyCon. Santa Clara. Retrieved 2 September 2014.
- ↑ http://docs.hylang.org/en/latest/quickstart.html