| 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 | 
| Stable release | |
| Scope | lexical, optionally dynamic[ citation needed ] | 
| Platform | IA-32, x86-64 | 
| OS | Cross-platform | 
| License | MIT-style | 
| Filename extensions | .hy | 
| Website |  hylang | 
| Influenced by | |
| Kawa, Clojure, Common Lisp | |
Hy is a dialect of the Lisp programming language designed to interact with Python by translating s-expressions into Python's abstract syntax tree (AST). [2] [3] Hy was introduced at Python Conference (PyCon) 2013 by Paul Tagliamonte. [4] Lisp allows operating on code as data (metaprogramming), thus Hy can be used to write domain-specific languages. [5]
Similar to Kawa's and Clojure's mappings onto the Java virtual machine (JVM), [6] [7] Hy is meant to operate as a transparent Lisp front-end for Python. [8] It allows Python libraries, including the standard library, to be imported and accessed alongside Hy code with a compiling [note 1] step where both languages are converted into Python's AST. [note 2] [9] [10] [11]
From the language documentation: [12]
=>(print"Hy!")Hy!=>(defn salutationsnm[name](print(+"Hy "name"!")))=>(salutationsnm"YourName")HyYourName!| 1958 | 1960 | 1965 | 1970 | 1975 | 1980 | 1985 | 1990 | 1995 | 2000 | 2005 | 2010 | 2015 | 2020 | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| LISP 1, 1.5, LISP 2(abandoned) | |||||||||||||||
| Maclisp | |||||||||||||||
| Interlisp | |||||||||||||||
| MDL | |||||||||||||||
| Lisp Machine Lisp | |||||||||||||||
| Scheme | R5RS | R6RS | R7RS small | ||||||||||||
| NIL | |||||||||||||||
| ZIL (Zork Implementation Language) | |||||||||||||||
| Franz Lisp | |||||||||||||||
| muLisp | |||||||||||||||
| Common Lisp | ANSI standard | ||||||||||||||
| Le Lisp | |||||||||||||||
| MIT Scheme | |||||||||||||||
| XLISP | |||||||||||||||
| T | |||||||||||||||
| Chez Scheme | |||||||||||||||
| Emacs Lisp | |||||||||||||||
| AutoLISP | |||||||||||||||
| PicoLisp | |||||||||||||||
| Gambit | |||||||||||||||
| EuLisp | |||||||||||||||
| ISLISP | |||||||||||||||
| OpenLisp | |||||||||||||||
| PLT Scheme | Racket | ||||||||||||||
| newLISP | |||||||||||||||
| GNU Guile | |||||||||||||||
| Visual LISP | |||||||||||||||
| Clojure | |||||||||||||||
| Arc | |||||||||||||||
| LFE | |||||||||||||||
| Hy | |||||||||||||||