Hy
表示
Hy logo - Cuddles the cuttlefish | |
パラダイム | Multi-paradigm: procedural, functional, object-oriented, meta, reflective, generic |
---|---|
登場時期 | 2013年 |
設計者 | Paul Tagliamonte |
最新リリース | 1.0.0 / 2024年9月22日[1] |
評価版リリース | 0.17.0 / 2019年5月20日 |
影響を受けた言語 | Lisp, Kawa, Clojure, Common Lisp |
プラットフォーム | Cross-platform |
ライセンス | MIT-style |
ウェブサイト |
hylang |
拡張子 | .hy |
関連言語 | Lisp |
Hy(またはHylang)は、式をPythonのAST(抽象構文木)へ変換することで、PythonとLisp間でのやり取りができるように設計されたプログラミング言語Lispの方言のひとつである。HyはPython Conference(PyCon)2013でPaul Tagliamonteが発表した[2]。
KawaやClojureにおいて、S式がJava仮想マシン(JVM)の抽象構文木にマッピングされるのと同様に[3]、Hyは、Pythonの抽象構文に対する透過的なLispフロントエンドとして使用することが想定されている[4]。Lispではコード自体をデータとして操作することが可能である(メタプログラミング)ため、Hyをドメイン固有言語(DSL)として使用することができる[5]。Hyのコードは、コンパイル[note 1]時に両言語のコードをPythonのASTにステップ変換するため、標準ライブラリを含むPythonのライブラリにインポートしたり、ライブラリからHyのコードにアクセスしたりすることが可能である[note 2][6][7][8]。
コード例
[編集]以下はHy言語のドキュメントからの引用である[9]。
=> (print "Hy!")
Hy!
=> (defn salutationsnm [name] (print (+ "Hy " name "!")))
=> (salutationsnm "YourName")
Hy YourName!
関連項目
[編集]出典
[編集]- ^ "Compiled" is a term which may apply to expressing Hy code in Python's AST or converting that AST into bytecode, the latter being dependent on the specific Python interpreter used and not Hy.
- ^ Hy is tested on Python 2.7, 3.4 through 3.6, and PyPy.
参考文献
[編集]- ^ 出典URL: https://github.com/hylang/hy/discussions/2608, 題名: Hy 1.0.0, the Lisp dialect for Python, has been released · hylang hy · Discussion #2608, 作品または名前の言語: 英語, 閲覧日: 2024年9月23日
- ^ Tagliamonte, Paul (2 April 2013). PyCon lightning talk (Speech). Python Conference (PyCon). Santa Clara. 2014年9月2日閲覧。
- ^ Turto, Tuukka (14 February 2014). “Programming Can Be Fun with Hy”. Open Source For You 2 September 2014閲覧。
- ^ Edge (30 April 2014). “Getting Hy on Python”. LWN.net. 2 September 2014閲覧。
- ^ Tagliamonte, Paul (11 April 2014). Getting Hy on Python: How to implement a Lisp front-end to Python (Speech). PyCon. Montreal. 2014年9月2日閲覧。
- ^ “Hy Documentation”. hylang.org. 3 September 2014閲覧。
- ^ Danjou, Julien (26 March 2014). “The AST”. The Hacker's Guide to Python. pp. 165–172
- ^ Kitchin (31 March 2016). “More on Hy and why I think it is a big deal”. The Kitchin Research Group. Carnegie Mellon University. 19 September 2018閲覧。
- ^ “Quickstart”. Hylang.org (15 May 2018). 19 September 2018閲覧。