HyLisp程式語言的一種方言。它設計用於同Python語言進行交互,方式是把表達式翻譯成Python的抽象語法樹(AST)[2][3]。Paul Tagliamonte在2013年於Python會議(PyCon)介紹了Hy[4]

Hy
編程範型多范型: 過程式, 函數式, 物件導向, 元編程, 反射式, 泛型
語言家族Lisp
設計者Paul Tagliamonte
實作者核心團隊
面市時間2013年,​11年前​(2013
當前版本
  • 1.0.0(2024年9月22日;穩定版本)[1]
編輯維基數據鏈接
作用域詞法
實作語言Python
系統平台IA-32, x86-64
作業系統跨平台
許可證MIT
文件擴展名.hy
網站hylang.org
啟發語言
Kawa英語Kawa (Scheme implementation), Clojure, Common Lisp

類似於Kawa英語Kawa (Scheme implementation)Clojures-表達式映射到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

注釋

編輯
  1. ^ 「編譯」這個術語可以應用於將Hy代碼表達為Python的AST或將這個AST轉換成字節碼,後者依賴於所使用的特定Python解釋器而非Hy。
  2. ^ Hy在Python 2.7、3.4到3.6和PyPy上測試過。

引用

編輯
  1. ^ 1.0 1.1 Hy 1.0.0, the Lisp dialect for Python, has been released · hylang hy · Discussion #2608. [2024年9月23日] (英語). 
  2. ^ Jaworski, Michał; Ziadé, Tarek. Expert Python programming Third. Birmingham, U.K.: Packt Publishing. 2019: 173. ISBN 978-1-78980-677-9. OCLC 1125343555. 
  3. ^ 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. 
  4. ^ Tagliamonte, Paul. PyCon lightning talk (演講). Python Conference (PyCon). Santa Clara. 2 April 2013 [2 September 2014]. (原始內容存檔於2020-10-19). 
  5. ^ Turto, Tuukka. Programming Can Be Fun with Hy. Open Source For You. 14 February 2014 [2 September 2014]. (原始內容存檔於2020-08-03). 
  6. ^ Edge, Jake. Getting Hy on Python. LWN.net. 30 April 2014 [2 September 2014]. (原始內容存檔於2020-10-12). 
  7. ^ 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). 
  8. ^ Hy Documentation. hylang.org. [3 September 2014]. (原始內容存檔於2020-11-25). 
  9. ^ Danjou, Julien. The AST. The Hacker's Guide to Python. 26 March 2014: 165–172. 
  10. ^ 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). 
  11. ^ Quickstart. Hylang.org. 15 May 2018 [19 September 2018]. (原始內容存檔於2019-08-14). 
  12. ^ Hissp. [2020-10-09]. (原始內容存檔於2020-09-20). 
  13. ^ SchemePy. [2020-10-10]. (原始內容存檔於2018-07-09). 

外部連結

編輯