0.29.0 (2024年5月20日;穩定版本) [ 1] 作用域 词法 實作語言 Python 系统平台 IA-32, x86-64 操作系统 跨平台 許可證 MIT式 文件扩展名 .hy 網站 hylang.org 啟發語言 Kawa (英语 : Kawa (Scheme implementation) ) , Clojure, Common Lisp Hy 是Lisp编程语言 的一种方言。它设计用于同Python语言进行交互,方式是把表达式翻译成Python的抽象语法树 (AST)[ 2] [ 3] 。Paul Tagliamonte在2013年于Python会议(PyCon)介绍了Hy[ 4] 。
类似于Kawa (英语 : Kawa (Scheme implementation) ) 和Clojure将s-表达式 映射到Java虚拟机 (JVM)之上[ 5] ,Hy必定作为Python抽象语法树的透明Lisp前端来运行[ 6] 。Lisp允许像数据那样在代码上进行操作(元编程 )。因此,Hy可以用来书写领域特定语言 [ 7] 。Hy还允许导入Python库 包括标准库 ,并与Hy代码一起被访问,方式是通过一个编译 步骤[ note 1] ,将二者的数据结构翻译成Python的AST[ note 2] [ 8] [ 9] [ 10] 。
例子代码 来自语言文档的例子[ 11] :
=> ( print "Hy!" )
Hy!
=> ( defn salutationsnm [ name ] ( print ( + "Hy " name "!" )))
=> ( salutationsnm "YourName" )
Hy YourName!
参见 Hy标志和吉祥物 ,墨鱼 Cuddles Common Lisp Clojure Kawa (Scheme实现) (英语 : Kawa (Scheme implementation) ) CLPython (英语 : CLPython ) Hissp[ 12] - Hissp是编译成Python的函数式子集的模块化Lisp实现,提供可以完全访问Python生态系统的语法宏元编程。 SchemePy[ 13] - 用Python实现的Scheme ,支持call/cc (英语 : call-with-current-continuation ) 和干净宏 。
注释 ^ “编译”这个术语可以应用于将Hy代码表达为Python的AST或将这个AST转换成字节码,后者依赖于所使用的特定Python解释器而非Hy。 ^ Hy在Python 2.7、3.4到3.6和PyPy 上测试过。
引用 ^ 1.0 1.1 Release 0.29.0. 2024年5月20日 [2024年5月23日] . ^ Jaworski, Michał; Ziadé, Tarek. Expert Python programming Third. Birmingham, U.K.: Packt Publishing. 2019: 173. ISBN 978-1-78980-677-9. OCLC 1125343555 . ^ Danjou, Julien. Serious Python: black-belt advice on deployment, scalability, testing, and more. San Francisco, CA: No Starch Press. 2018: 145–149. ISBN 9781593278793. OCLC 1057729260 . ^ Tagliamonte, Paul. PyCon lightning talk (演讲). Python Conference (PyCon). Santa Clara. 2 April 2013 [2 September 2014] . (原始内容存档于2020-10-19). ^ Turto, Tuukka. Programming Can Be Fun with Hy. Open Source For You. 14 February 2014 [2 September 2014] . (原始内容存档于2020-08-03). ^ Edge, Jake. Getting Hy on Python. LWN.net . 30 April 2014 [2 September 2014] . (原始内容存档于2020-10-12). ^ Tagliamonte, Paul. Getting Hy on Python: How to implement a Lisp front-end to Python (演讲). PyCon . Montreal. 11 April 2014 [2 September 2014] . (原始内容存档于2020-10-20). ^ Hy Documentation. hylang.org. [3 September 2014] . (原始内容存档于2020-11-25). ^ Danjou, Julien. The AST. The Hacker's Guide to Python. 26 March 2014: 165–172. ^ Kitchin, John. More on Hy and why I think it is a big deal. The Kitchin Research Group. Carnegie Mellon University . 31 March 2016 [19 September 2018] . (原始内容存档于2020-02-17). ^ Quickstart. Hylang.org. 15 May 2018 [19 September 2018] . (原始内容存档于2019-08-14). ^ Hissp. [2020-10-09 ] . (原始内容存档于2020-09-20). ^ SchemePy. [2020-10-10 ] . (原始内容存档于2018-07-09).
外部链接 特征
Common Lisp对象系统 (CLOS) CommonLoops (英语 : CommonLoops ) Flavors (英语 : Flavors (programming language) )
实现 (英语 : Programming language implementation )
Common Lisp
Bigloo (英语 : Bigloo ) Chez Scheme Chicken Gambit Gauche (英语 : Gauche (Scheme implementation) ) GNU Guile Ikarus (英语 : Ikarus (Scheme implementation) ) IronScheme (英语 : IronScheme ) JScheme Kawa (英语 : Kawa (Scheme implementation) ) Larceny MIT/GNU Scheme Racket RScheme (英语 : RScheme ) Scheme 48 SCM SIOD STklos (英语 : STklos ) TinyScheme Ypsilon (英语 : Ypsilon (Scheme implementation) ) OpenLisp (英语 : OpenLisp ) Easy-ISLisp
未标准化
Arc AutoLISP BBN LISP Clojure Dylan Emacs Lisp EuLisp (英语 : EuLisp ) Franz Lisp GOAL (英语 : Game Oriented Assembly Lisp ) Hy Interlisp (英语 : Interlisp ) 知识工程环境 (英语 : Knowledge Engineering Environment ) LispKit *Lisp (英语 : *Lisp ) Le Lisp LFE (英语 : LFE (programming language) ) Lisp Machine Lisp (英语 : Lisp Machine Lisp ) Maclisp MDL (英语 : MDL (programming language) ) MLisp (英语 : MLisp ) MultiLisp (英语 : MultiLisp ) newLISP NIL (英语 : NIL (programming language) ) PC-LISP (英语 : PC-LISP ) PicoLisp Portable Standard Lisp (英语 : Portable Standard Lisp ) RPL (英语 : RPL (programming language) ) S-1 Lisp (英语 : S-1 Lisp ) SKILL Spice Lisp (英语 : Spice Lisp ) T (英语 : T (programming language) ) Zetalisp (英语 : Zetalisp ) Logo
MSWLogo (英语 : MSWLogo ) NetLogo StarLogo (英语 : StarLogo ) UCBLogo (英语 : UCBLogo )
Common Lisp界面管理器 (英语 : Common Lisp Interface Manager ) McCLIM (英语 : McCLIM ) Genera (英语 : Genera (operating system) ) Scsh (英语 : Scsh ) Lisp机器 TI Explorer (英语 : TI Explorer ) Space-cadet键盘 (英语 : Space-cadet keyboard )
实践 社群
技术标准
Scheme实现要求 (英语 : Scheme Requests for Implementation ) Common Lisp HyperSpec (英语 : Common Lisp HyperSpec ) X3J13 (英语 : X3J13 ) 教育
图书
Common Lisp语言 (英语 : Common Lisp the Language ) 如何设计程序 (HtDP) On Lisp (英语 : On Lisp ) Practical Common Lisp (英语 : Practical Common Lisp ) 计算机程序的构造和解释 (SICP) 教程
ProgramByDesign (英语 : ProgramByDesign )
组织
商业
苹果公司 BBN Harlequin (英语 : Harlequin (software company) ) Lucid Inc. (英语 : Lucid Inc. ) Symbolics (英语 : Symbolics ) Xanalys (英语 : Xanalys ) 教育
麻省理工学院 斯坦福人工智能实验室 (英语 : Stanford University centers and institutes#Stanford Artificial Intelligence Laboratory ) 加利福尼亚大学伯克利分校
人士
Common Lisp
Scott Fahlman (英语 : Scott Fahlman ) Richard P. Gabriel (英语 : Richard P. Gabriel ) Philip Greenspun (英语 : Philip Greenspun ) David A. Moon (英语 : David A. Moon ) Kent Pitman (英语 : Kent Pitman ) Guy L. Steele Jr. Daniel Weinreb (英语 : Daniel Weinreb ) Logo
语言 家族 列表 (英语 : List of Lisp-family programming languages )