Hy(またはHylang)は、式をPythonのAST(抽象構文木)へ変換することで、PythonとLisp間でのやり取りができるように設計されたプログラミング言語Lispの方言のひとつである。Hyは(Python Conference)(PyCon)2013でPaul Tagliamonteが発表した[2]。
Hy logo - Cuddles the (cuttlefish) | |
パラダイム | (Multi-paradigm): (procedural), (functional), object-oriented, (meta), (reflective), (generic) |
---|---|
登場時期 | 2013年 |
設計者 | Paul Tagliamonte |
最新リリース | 0.26.0 / 2023年2月8日[1] |
評価版リリース | 0.17.0 / 2019年5月20日 |
影響を受けた言語 | (Lisp), (Kawa), Clojure, Common Lisp |
プラットフォーム | Cross-platform |
ライセンス | MIT-style |
ウェブサイト | hylang |
拡張子 | .hy |
関連言語 | (Lisp) |
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!
関連項目
出典
参考文献
- ^ 出典URL: https://github.com/hylang/hy/releases/tag/0.26.0, 閲覧日: 2023年2月15日, 題名: Release 0.26.0, 出版日: 2023年2月8日
- ^ Tagliamonte, Paul (2 April 2013). PyCon lightning talk (Speech). (Python Conference) (PyCon). Santa Clara. 2014年9月2日閲覧。
- ^ Turto, Tuukka (2014年2月14日). “Programming Can Be Fun with Hy”. (Open Source For You)2014年9月2日閲覧。
- ^ Edge (2014年4月30日). “Getting Hy on Python”. (LWN.net). 2014年9月2日閲覧。
- ^ (Speech).
|title=
は必須です。 () - ^ “Hy Documentation”. hylang.org. 2014年9月3日閲覧。
- ^ Danjou, Julien (26 March 2014). “The AST”. The Hacker's Guide to Python. pp. 165–172
- ^ Kitchin (2016年3月31日). “More on Hy and why I think it is a big deal”. The Kitchin Research Group. (Carnegie Mellon University). 2018年9月19日閲覧。
- ^ “Quickstart”. Hylang.org (2018年5月15日). 2018年9月19日閲覧。
外部リンク
- 公式ウェブサイト
- hy - GitHub
- Documentation
- Video of 2014 PyCon talk