23

Practical Common Lisp を読んだ後、私は最終的にマクロの重要性を理解し、これをサポートする .NET プラットフォーム用の言語を探していました。.NET 用の Lisp 方言がいくつかありますが、私が収集できたものからは、すべて非常にベータ版であるか、放棄されています。最近、Clojure に興味を持ちましたが、これは Java プラットフォーム用であり、おそらく ikvm を使用できますが、統合されているとは感じません。特にWPFのようなことをしたいとき。

最近、F# についてのささやきを耳にします。マクロのサポートについて何か見つけられないかとドキュメントを調べてみましたが、見つかりませんでした。それで、誰か知っていますか?

ありがとう :)

4

11 に答える 11

13

http://nemerle.org/にあるNemerle は、(mono もサポートする) .NET 言語であり、視覚的に C# に近いままでありながら、多くの関数型プログラミング パラダイムをサポートします。広範なマクロをサポートしています。

于 2008-09-17T23:29:25.430 に答える
12

F# は OCaml に基づいており、OCaml にはかなり広範なマクロ システムがあります。F# と OCaml の構文と意味の類似性を考えると、Ocaml マクロ システムを F# に移植できる可能性があります。

Ocaml のマクロ システムを盗むことを除けば、F# 用の既定のマクロ システムを知りません。

于 2008-09-17T22:26:48.747 に答える
7

いいえ。F# のマクロはありません。

于 2008-09-17T22:23:45.993 に答える
6

ブーを見たことがありますか?Boo にはマクロがありませんが、オープン コンパイラ パイプラインがあり、構文メタプログラミングのマクロに代わる優れた手段です。

[編集] コメントで指摘されているように、Boo に現在マクロがあります。

于 2008-09-17T23:58:15.483 に答える
4

しかし、これらの ocaml の例の構文はあいまいに見えます。

そこでは、Lisp で行うのと同じ基本的な構文上のトレードオフに遭遇しています。Lisp に似たマクロの力が必要な場合は、その言語の Lisp に似た構文で終わる傾向があります。または、マクロの構文が通常の構文とはかなり異なって見えます...どちらのアプローチにも問題はなく、選択が異なるだけです。

于 2008-09-17T23:19:09.820 に答える
4

Clojureのかなりアクティブな .NET/Mono ポートがあることを指摘しておく必要があると思いました。質問に記載されているように、Clojure は LISP スタイルのマクロをサポートしています。

他の人が言ったように、マクロはこの時点 (2010 年後半) では F# でサポートされていません。

于 2010-11-07T01:10:35.843 に答える
3

最近、F#についてのささやきを聞いています。マクロのサポートについて何か見つけられるかどうかドキュメントを調べようとしましたが、見つかりませんでした。だから誰か知っていますか?

F#はマクロをサポートしておらず、サポートされる可能性はほとんどありません。

于 2010-09-01T13:03:39.030 に答える
2

F# の引用符を使用するのはどうですか?

http://toasp.net/blog/fsquotations.aspx

于 2010-06-23T11:41:57.213 に答える
1

それはあなたが望むものとは逆かもしれませんが、RDNZLについて知っていますか?これは、Lispコードから.NETライブラリを呼び出すことができるfoerign-function interface(FFI)です。

それらはおそらくCommonLispやSchemeの実装よりもはるかに成熟していませんが、.NET用のLisp方言があります:L#DotLisp

于 2008-09-19T10:18:47.123 に答える
1

.net用に活発に開発されたLispが2つあります

IronScheme -DLRベースのスキームの実装

Xronos -DLRベースのclojureのポート

于 2008-12-12T00:28:33.560 に答える