Clojureの方言をRustで実装した「clj.rs」が登場
Clj.rs – a Clojure dialect implemented in Rust
clj.rsはRustエコシステムを対象にした実験的なClojure方言だ。永続データ構造、ホスト言語のマクロシステム、ネイティブ相互運用を備え、コンパイルとインタプリタの両方に対応する。エージェント型コーディングのランタイムとしての利用も想定されており、crates.ioで公開済みだが、まだ初期段階で粗削りな部分も多い。
実験的なClojure方言で、Rustエコシステムを対象としている。能力のあるLispランタイムを目指し、永続データ構造、ホストされたマクロシステム、ネイティブ相互運用を備え、コンパイルまたはインタプリタで動作し、エージェント型コーディングランタイムとしての利用に適する。
HNでの議論
69- vaylian
Clojureのキラー機能の一つは、ホストプラットフォームとのシームレスな相互運用性だ。JVMでは `(Integer/parseInt my-variable);` のように書けて、これはJava側で `Integer.parseInt(my_variable)` を呼び出す。
Rustのコードを呼び出す例を探してみたが、見つけられた中で最良のものはこれだった:
https://github.com/csm/clojurust/blob/b847a29b46e2b6b3fbe624...
Rustの関数をClojureの名前空間に取り込むには、かなりの手間をかける必要がありそうだ。回避策はないのだろうし、これはclj.rsへの批判ではない。ただ、JVM上ほどシームレスではないように思える。
- JavierFlores09
ClojureはLisp系言語の新しい基盤になったのだろうか?人々がClojure特有のLispの味を求める理由は何なのだろう?最近Jank[1]に関するClojureのトークも見かけて興味を持ったので、ただ聞いてみただけだ。
- xnfra
Clojureについて私が知っている唯一のことは、Walmartが在庫管理システム全体を書き直すのに使ったということだ。
- tux
なぜ「Cloju.rs」と名付けなかったのかな? :-)
- jiehong
いいね、でも非目標は何だろう?
ネイティブバイナリへのコンパイルは別として、これはどちらかというとClojureというよりClojureScriptに近いと思うのだけど?
Jankとの比較はどうなんだろう?