Hy
Hy logo - Cuddles the cuttlefish | |
Paradigm | Multi-paradigm: procedural, functional, object-oriented, meta, reflective, generic |
---|---|
Family | Lisp |
Designed by | Paul Tagliamonte |
Developers | Core team |
First appeared | 2013 |
Preview release | 0.15.0
/ 11 September 2018 |
Scope | lexical, optionally dynamic[citation needed] |
Platform | IA-32, x86-64 |
OS | Cross-platform |
License | MIT-style |
Filename extensions | .hy |
Website | hylang |
Influenced by | |
Lisp, Kawa, Clojure, Common Lisp |
Hy (alternately, Hylang) is a programming language, a dialect of the language Lisp designed to interact with the language Python by translating expressions into Python's abstract syntax tree (AST). Hy was introduced at Python Conference (PyCon) 2013 by Paul Tagliamonte.[1]
Similar to Kawa's and Clojure's mapping of s-expressions onto the Java virtual machine (JVM),[2] Hy is meant to operate as a transparent Lisp front end to Python's abstract syntax.[3] Lisp allows operating on code as data (metaprogramming). Thus, Hy can be used to write domain-specific languages.[4] Hy also allows Python libraries, including the standard library, to be imported and accessed alongside Hy code with a compiling[note 1] step converting the data structure of both into Python's AST.[note 2][5][6][7]
Example code[edit]
From the language documentation:[8]
=> (print "Hy!")
Hy!
=> (defn salutationsnm [name] (print (+ "Hy " name "!")))
=> (salutationsnm "YourName")
Hy YourName!
See also[edit]
Notes[edit]
References[edit]
- ^ Tagliamonte, Paul (2 April 2013). PyCon lightning talk (Speech). Python Conference (PyCon). Santa Clara. Retrieved 2 September 2014.
- ^ 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.
- ^ Tagliamonte, Paul (11 April 2014). Getting Hy on Python: How to implement a Lisp front-end to Python (Speech). PyCon. Montreal. Retrieved 2 September 2014.
- ^ "Hy Documentation". hylang.org. Retrieved 3 September 2014.
- ^ Danjou, Julien (26 March 2014). "The AST". The Hacker's Guide to Python. pp. 165–172.
- ^ Kitchin, John (31 March 2016). "More on Hy and why I think it is a big deal". The Kitchin Research Group. Carnegie Mellon University. Retrieved 19 September 2018.
- ^ "Quickstart". Hylang.org. 15 May 2018. Retrieved 19 September 2018.
External links[edit]
1955 | 1960 | 1965 | 1970 | 1975 | 1980 | 1985 | 1990 | 1995 | 2000 | 2005 | 2010 | 2015 | 2019 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Lisp 1.5 | ||||||||||||||
Maclisp | ||||||||||||||
Interlisp | ||||||||||||||
Lisp Machine Lisp | ||||||||||||||
Scheme | ||||||||||||||
NIL | ||||||||||||||
Common Lisp | ||||||||||||||
Le Lisp | ||||||||||||||
T | ||||||||||||||
Emacs Lisp | ||||||||||||||
AutoLISP | ||||||||||||||
OpenLisp | ||||||||||||||
PicoLisp | ||||||||||||||
EuLisp | ||||||||||||||
ISLISP | ||||||||||||||
newLISP | ||||||||||||||
Racket | ||||||||||||||
GNU Guile | ||||||||||||||
Visual LISP | ||||||||||||||
Clojure | ||||||||||||||
Arc | ||||||||||||||
LFE | ||||||||||||||
Hy |