Hy – Lisp as an AltPython


Hy – Lisp as an AltPython

概要

Hy言語は、Pythonの代替言語のひとつです。
文法はLisp式で、Lispの方言になります。

Pythonの抽象構文木にコードが変換されます。
ですので、Javaに対するKotlinなどの位置づけに等しいです。
TypeScriptやScssのような、元言語そのものへのトランスパイルは行いません。

Pythonとの連携が容易で、相互運用が簡単にできます。
Pythonでの開発をサポートする第二言語として、最適といえます。

用法

Pythonのモジュール開発をしたいが、
Lispの文法を使ったほうが簡単にかけるときに使います。
例えば、複雑なラムダ式(無名関数)を使いたい時、
Pythonでは無理でも、Hyならできます。

環境設定

  1. Pythonの環境がインストールされていることを確認
  2. pip install git+https://github.com/hylang/hy.git
  3. コマンドラインでhyコマンドを打って、シェル環境を呼び出し

開発支援環境構築

  1. VSCodeがインストールされていることを確認
  2. 拡張機能で、vscode-hyをインストール

サンプルコード(tutorial.hy)

(print (* (+ 3 4) 5))

実行

コマンド(windows)

hy ./tutorial.hy

期待される表示

35

動画

Pythonとの相互運用

hy言語は、Pythonとの相互運用も可能です。

Pythonのモジュールを読み込む

Python側

def concat(values : list):
    return "".join([str(value) for value in values])

Hy側

(import [python_for_sample_hy [concat]])

(print (concat [1 3 4]))

実行動画

Pythonにモジュールを輸出する

Hy側(hy_for_sample_python.hy)

(defn data [obj]
    (defn process [process_content]
        (process_content obj)
    )
    (return process)
)

 

Python側(sample.py)

import hy
from hy_for_sample_python import data

if __name__ == "__main__":
    data([1,2,3])(print)

実行動画

参照

  1. Hy言語公式サイト
  2. Hy言語公式リポジトリ
  • このエントリーをはてなブックマークに追加

PAGE TOP