ARTICLES

Liyad - 小さな Lisp DSL インタプリタ

2019-05-12

面白そうなプロジェクトを見つけたので、共有してみます。

Liyad というオープンソースプロダクトなんですが、この Liyad は、JavaScript で作られた他の Lisp 方言とは一味違い、DSL としての側面を強く押し出しています。

JavaScript で書かれているため、npm でインストールできます。

Liyad

REPL で試すことも出来、以下のようにすることでインストールができます。

$ npm i -g liyad-cli

ちょっと使ってみましょう。

$ liyad
liyad 0.0.52 (CLI 0.0.47) (REPL)
Type ^C to exit.

>>> (+ 1 2 3 4 5)
15
>>> ($list 1 2 3)
[ 1, 2, 3 ]
>>> (# (foo "a")
...    (bar 10)
...    (baz) )
{ foo: 'a', bar: 10, baz: true }

まあ、こんな感じで、書き方は特殊なものがありますが、読み方は Lisp に慣れた人であれば読めそうな雰囲気があります。今後言語仕様リファレンスが充実したらいいなあと思いました。

この Liyad の中でも特に面白そうだったのが、LSX という DSL です。LSX は Alternative JSX notation using Lisp の略だそうで、JSX を置き換えるものとなっています。JSX に慣れた人でも読み解くのは難しそうですが、S 式でテンプレートを書けるということで、JSX にはない違った可能性を秘めているかもしれません。

Liyad は、まだバージョン 0.0.52 ですが、今後どんな風に育っていくか楽しみに思い、共有しました。

ISC ライセンスにて以下のリポジトリにて公開されています。


ARTICLES


    AUTHOR

    原 一浩 の顔写真

    (はら) 一浩(かずひろ)

    カンソクインダストリーズ代表 / グレーティブ合同会社代表

    1998年に独立し、同年、ウェブデザイン専門のメールメディア DesignWedgeの発行を開始。Webデザイン業の傍ら、海外のWebデザインに関する情報発信を行う。
    雑誌への寄稿多数。主な著書に『はじめてのフロントエンド開発』『プロセスオブウェブデザイン』、『Play framework徹底入門』、『ウェブデザインコーディネートカタログ』など。自社製のWebデザインのクロール&キャプチャシステムvaqumをベースに、様々なリサーチを行っている。Web 検定プロジェクトメンバー

    著作一覧はこちら