Hy (programming language)
Dialect of the Lisp programming language designed to interact with Python
From Wikipedia, the free encyclopedia
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]
| 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 | |
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]
Example code
From the language documentation:[12]
=> (print "Hy!")
Hy!
=> (defn salutationsnm [name] (print (+ "Hy " name "!")))
=> (salutationsnm "YourName")
Hy YourName!