Hy语言

HyLisp编程语言的一种方言。它设计用于同Python语言进行交互,方式是把表达式翻译成Python的抽象语法树(AST)[2][3]。Paul Tagliamonte在2013年于Python会议(PyCon)介绍了Hy[4]

Hy
多范型: 过程式, 函数式, 面向对象, 元编程, 反射式, 泛型
语言家族Lisp
設計者Paul Tagliamonte
實作者核心团队
2013年2013
当前版本
  • 0.28.0 (2024年1月5日;穩定版本)[1]
作用域词法
實作語言Python
系统平台IA-32, x86-64
操作系统跨平台
許可證MIT
文件扩展名.hy
網站hylang.org
啟發語言
Kawa, Clojure, Common Lisp

类似于KawaClojures-表达式映射到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实现)
  • CLPython
  • Hissp[12] - Hissp是编译成Python的函数式子集的模块化Lisp实现,提供可以完全访问Python生态系统的语法宏元编程。
  • SchemePy[13] - 用Python实现的Scheme,支持call/cc干净宏

注释

  1. “编译”这个术语可以应用于将Hy代码表达为Python的AST或将这个AST转换成字节码,后者依赖于所使用的特定Python解释器而非Hy。
  2. Hy在Python 2.7、3.4到3.6和PyPy上测试过。

引用

  1. . 2024年1月5日 [2024年1月19日].
  2. Jaworski, Michał; Ziadé, Tarek. Third. Birmingham, U.K.: Packt Publishing. 2019: 173. ISBN 978-1-78980-677-9. OCLC 1125343555.
  3. Danjou, Julien. . San Francisco, CA: No Starch Press. 2018: 145–149. ISBN 9781593278793. OCLC 1057729260.
  4. Tagliamonte, Paul. (演讲). Python Conference (PyCon). Santa Clara. 2 April 2013 [2 September 2014]. (原始内容存档于2020-10-19).
  5. Turto, Tuukka. . Open Source For You. 14 February 2014 [2 September 2014]. (原始内容存档于2020-08-03).
  6. Edge, Jake. . LWN.net. 30 April 2014 [2 September 2014]. (原始内容存档于2020-10-12).
  7. Tagliamonte, Paul. (演讲). PyCon. Montreal. 11 April 2014 [2 September 2014]. (原始内容存档于2020-10-20).
  8. . hylang.org. [3 September 2014]. (原始内容存档于2020-11-25).
  9. Danjou, Julien. . . 26 March 2014: 165–172.
  10. Kitchin, John. . The Kitchin Research Group. Carnegie Mellon University. 31 March 2016 [19 September 2018]. (原始内容存档于2020-02-17).
  11. . Hylang.org. 15 May 2018 [19 September 2018]. (原始内容存档于2019-08-14).
  12. . [2020-10-09]. (原始内容存档于2020-09-20).
  13. . [2020-10-10]. (原始内容存档于2018-07-09).

外部链接

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.