Hy语言
编程范型 | 多范型: 过程式, 函数式, 面向对象, 元编程, 反射式, 泛型 |
---|---|
语言家族 | Lisp |
设计者 | Paul Tagliamonte |
实作者 | 核心团队 |
发行时间 | 2013年 |
当前版本 |
|
作用域 | 词法 |
实作语言 | Python |
系统平台 | IA-32, x86-64 |
操作系统 | 跨平台 |
许可证 | MIT式 |
文件扩展名 | .hy |
网站 | hylang |
启发语言 | |
Kawa, Clojure, Common Lisp |
Hy是Lisp编程语言的一种方言。它设计用于同Python语言进行交互,方式是把表达式翻译成Python的抽象语法树(AST)[2][3]。Paul Tagliamonte在2013年于Python会议(PyCon)介绍了Hy[4]。
类似于Kawa和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!
参见
- Common Lisp
- Clojure
- Kawa (Scheme实现)
- CLPython
- Hissp[12] - Hissp是编译成Python的函数式子集的模块化Lisp实现,提供可以完全访问Python生态系统的语法宏元编程。
- SchemePy[13] - 用Python实现的Scheme,支持call/cc和干净宏。
注释
引用
- ^ 1.0 1.1 Hy 1.0.0, the Lisp dialect for Python, has been released · hylang hy · Discussion #2608. [2024年9月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).