Hy語言
Hy是Lisp編程語言的一種方言。它設計用於同Python語言進行交互,方式是把表達式翻譯成Python的抽象語法樹(AST)[2][3]。Paul Tagliamonte在2013年於Python會議(PyCon)介紹了Hy[4]。
編程範型 | 多范型: 過程式, 函數式, 面向對象, 元編程, 反射式, 泛型 |
---|---|
語言家族 | Lisp |
設計者 | Paul Tagliamonte |
實作者 | 核心團隊 |
面市時間 | 2013年 |
當前版本 |
|
作用域 | 詞法 |
實作語言 | Python |
系統平台 | IA-32, x86-64 |
操作系統 | 跨平台 |
許可證 | MIT式 |
文件擴展名 | .hy |
網站 | hylang |
啟發語言 | |
Kawa, Clojure, Common Lisp |
類似於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).