Hy
From Wikipedia, the free encyclopedia
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.13.0 - Jun 20, 2017
|
| Scope | lexical, optionally dynamic[citation needed] |
| OS | Cross-platform |
| Filename extensions | .hy |
| Website | hylang |
Hy (alternately, Hylang) is a dialect of the Lisp programming language designed to interact with Python by translating expressions into Python's abstract syntax tree (AST). Hy was introduced at PyCon 2013 by Paul Tagliamonte.[1]
Similar to Clojure's mapping of s-expressions onto the JVM,[2] Hy is meant to operate as a transparent Lisp front end to Python's abstract syntax.[3] Because Lisp allows for operating on code as data, Hy can be used to write domain-specific languages.[4] 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.[note 2][5][6]
Example code[edit]
From the language documentation:[7]
=> (print "Hy!")
Hy!
=> (defn salutationsnm [name] (print (+ "Hy " name "!")))
=> (salutationsnm "YourName")
Hy YourName!
See also[edit]
Notes[edit]
- ^ "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.
- ^ Hy is tested on Python 2.7, 3.3 through 3.6, and PyPy.
References[edit]
- ^ Paul Tagliamonte (2 April 2013). PyCon lightning talk (Speech). 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.
- ^ 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.
- ^ "Hy Documentation". hylang.org. Retrieved 3 September 2014.
- ^ Danjou, Julien (26 March 2014). "The AST". The Hacker's Guide to Python. pp. 165–172.
- ^ http://docs.hylang.org/en/latest/quickstart.html
External links[edit]
| 1955 | 1960 | 1965 | 1970 | 1975 | 1980 | 1985 | 1990 | 1995 | 2000 | 2005 | 2010 | 2015 | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Lisp 1.5 | Lisp 1.5 | |||||||||||||
| Maclisp | Maclisp | |||||||||||||
| Interlisp | Interlisp | |||||||||||||
| ZetaLisp | Lisp Machine Lisp | |||||||||||||
| Scheme | Scheme | |||||||||||||
| NIL | NIL | |||||||||||||
| Common Lisp | Common Lisp | |||||||||||||
| T | T | |||||||||||||
| Emacs Lisp | Emacs Lisp | |||||||||||||
| AutoLISP | AutoLISP | |||||||||||||
| ISLISP | ISLISP | |||||||||||||
| EuLisp | EuLisp | |||||||||||||
| PicoLisp | PicoLisp | |||||||||||||
| Racket | Racket | |||||||||||||
| Arc | Arc | |||||||||||||
| Clojure | Clojure | |||||||||||||
| LFE | LFE | |||||||||||||
| Hy | Hy | |||||||||||||
| This computing article is a stub. You can help Wikipedia by expanding it. |