Hackage には、補間された文字列を扱うさまざまなライブラリが多数あります。品質の低いものもあれば、サポートする機能の数によって異なるものもあります。
どちらを使用する価値がありますか?
ライブラリの例 (順不同): Shakespeare、interpolatedstring-qq、Interpolation
Hackage には、補間された文字列を扱うさまざまなライブラリが多数あります。品質の低いものもあれば、サポートする機能の数によって異なるものもあります。
どちらを使用する価値がありますか?
ライブラリの例 (順不同): Shakespeare、interpolatedstring-qq、Interpolation
Hackage で見つけることができるすべての補間 quasiquoter ライブラリを調べました。
使用する価値のある補間ライブラリ:
interpolatedstring-perl6 : 妥当な構文で任意の Haskell コードの補間をサポートしますが、haskell-src-exts が必要です。一般的な文字列補間構文が必要な場合は、これを使用します。
Shakespeare -text : Shakespeare ファミリーのテンプレートに基づいており、依存関係は最小限です。他のほとんどの補間文字列パッケージはhaskell-src-extsに依存していますが、これは非常に重いパッケージであり、コンパイルに多くの時間とリソースがかかる可能性があります。他のシェイクスピア テンプレートを使用している場合は、これを使用することをお勧めします。
ただし、単純な変数展開以上のものをサポートしていますが、任意の Haskell コードの補間はサポートしていません。関数の適用、演算子なども行いText
ますString
。ソースコードから見て s で使用できるかどうかはわかりませんが、使用できることString
を示唆するサポートコードがあります。
Interpolation : 任意の式 (これも haskell-src-exts を使用) をサポートし、組み込みのループ機能も備えています。単純な補間よりも「テンプレート」のような機能が必要な場合は、検討する価値がありますが、個人的には構文が非常に醜いと思います。
おそらく使用する価値のない補間ライブラリ:
interpolatedstring-qq : interpolatedstring-perl6 に基づいているようです。1 年以上更新されておらず、interpolatedstring-perl6 よりも機能が少ないようです。あなたが本当に#{expr}
構文に執着していない限り、私はこれを考慮しません.
interpol : プリプロセッサとして実装され、{foo}
文字列に特別な意味を与えます。IMO は重すぎるソリューションであり、そのような軽量の構文では、既存のコードが壊れる可能性があります。
要約すると、haskell-src-exts の依存関係を気にしない場合は interpolatedstring-perl6 をお勧めします。必要な場合 (または既に Shakespeare テンプレートを使用している場合) は、shakspeare-text をお勧めします。
もう 1 つのオプションは、より一般的なテンプレート エンジンでstring-qqパッケージを使用することです。String
、 、Text
およびをサポートしており、ByteString
あらゆる用途をカバーする必要があります。ただし、これは明らかに Haskell コードの埋め込みをサポートしておらず、変数を個別に指定する必要があるため、特定の状況でのみ役立つ可能性があります。