1

Haskell のソース コードだけでなく、スタンドアロン アプリケーションとしても役立つ「QuasiQuoter」があります。したがって、QuasiQuoter を実行できる必要があります。

  1. Haskell でのコンパイル時 -[myGrammar|someCommand|]
  2. シェルの実行時 (実行時コンパイル) -mygrammar 'someCommand'

最初の部分は簡単ですが、2 番目の部分は、ランタイムから生成されたコードを使用してコンパイラを呼び出すように解決すると、少しぎこちないかもしれません。

ソースコードだけを受け入れず、代わりに QuasyQuoter データ型を受け入れる Haskell の優れたメソッドを使用して、問題の 2 番目の部分を解決したいと思います。しかし、そのようなコンパイル方法は見つかりません。

何でも知ってますか?ありがとう。

使用例

ハスケル

この関数はタプル [(a,b,c,d,e)] を受け取り、文字列と積のリストを返します。

function = [lsql| {1..5}, r=[ a.* |> (*) ], "Product of a.1 * a.2 * ... * a.5 is &a.r"|]

バッシュ

このコマンドは、少なくとも 5 つの数値列を含む stdin csv から読み取り、製品のリストを返します (1 行に 1 つ)。

lsql-csv '-, r=[ a.* |> (*) ], "Product of a.1 * a.2 * ... * a.5 is &a.r"'
4

1 に答える 1