Hy (programming language)

Dialect of the Lisp programming language designed to interact with Python From Wikipedia, the free encyclopedia

Hy (programming language)

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]

Quick Facts Paradigm, Family ...
Hy
Thumb
Hy logo – Cuddles the cuttlefish
ParadigmMulti-paradigm: procedural, functional, object-oriented, meta, reflective, generic
FamilyLisp
Designed byPaul Tagliamonte
DevelopersCore team
First appeared2013; 12 years ago (2013)
Stable release
1.0.0[1]  / 22 September 2024; 6 months ago (22 September 2024)
Scopelexical, optionally dynamic[citation needed]
PlatformIA-32, x86-64
OSCross-platform
LicenseMIT-style
Filename extensions.hy
Websitehylang.org
Influenced by
Kawa, Clojure, Common Lisp
Close

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!

See also

Notes

  1. The term "compiled" may apply to expressing Hy code in Python's AST or converting that AST into bytecode, the latter being dependent on the specific Python interpreter used and not Hy.
  2. Hy is tested on Python 2.7, 3.4 through 3.6, and PyPy.

References

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.