19

さて、質問は自明です。楽しみのためだけに特別な構文を実装したいとします。出来ますか?どのツールを使用すればよいですか?

4

2 に答える 2

17

Haskell 標準にはそのようなメタ構文はありませんが、GHC にはあります。GHC の "quasi-quotation" 機能 (GHC の "Template Haskell" 機能とは異なります) を使用して、ほとんどすべての記法を作成できます。

これに関するGHC ユーザーガイドは非常に短く、主に Quasiquotationに関する haskell wiki ページと実装者のホームページを指しています。どちらも元の出版物を指しています: "Why It's Nice to be Quoted: Quasiquoting for Haskell" .

人々は、XML 構文、正規表現、特殊な文字列およびテキスト形式を埋め込むために準引用符を使用してきました。

于 2011-03-27T16:02:37.020 に答える
8

最善の方法は、カスタム プリプロセッサを作成することだと思います。いくつかの構文拡張は、このアプローチから始まりました。たとえば、次を参照してください。

  • DrIFt : 型クラス インスタンスの自動生成
  • arrowp : アロー表記のプリプロセッサ
  • c2hs : FFI バインディング用のマーシャリング情報と型シグネチャの自動生成

などなど。もう 1 つの方法は、GHC にパッチを適用することですが、このアプローチはかなり困難です。

于 2011-03-27T15:03:28.390 に答える