Hy (编程语言)

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

Hy
多范型: 过程式, 函数式, 面向对象, 元编程, 反射式, 泛型
语言家族Lisp
設計者Paul Tagliamonte
實作者核心团队
2013年2013
預覽版本
0.19.0
(2020年7月16日2020-07-16
作用域词法
實作語言Python
系统平台IA-32, x86-64
作業系統跨平台
許可證MIT
文件扩展名.hy
網站hylang.org
啟發語言
Lisp, Kawa, Clojure, Common Lisp

类似于KawaClojures-表达式映射到Java虚拟机(JVM)之上[4],Hy必定作为Python抽象语法树的透明Lisp前端来运行[5]。Lisp允许像数据那样在代码上进行操作(元编程)。因此,Hy可以用来书写领域特定语言[6]。Hy还允许导入Python包括标准库,并与Hy代码一起被访问,方式是通过一个编译步骤[note 1],将二者的数据结构翻译成Python的AST[note 2][7][8][9]

例子代码

来自语言文档的例子[10]

=> (print "Hy!")
Hy!
=> (defn salutationsnm [name] (print (+ "Hy " name "!")))
=> (salutationsnm "YourName")
Hy YourName!

参见

Hy标志和吉祥物墨鱼Cuddles
  • Common Lisp
  • Clojure
  • Kawa (Scheme实现)
  • CLPython
  • . [2020-10-09]. (原始内容存档于2020-09-20). - Hissp是编译成Python的函数式子集的模块化Lisp实现,提供可以完全访问Python生态系统的语法宏元编程。
  • . [2020-10-10]. (原始内容存档于2018-07-09). - 用Python实现的Scheme,支持call/cc保健宏

注释

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

引用

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

外部链接

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