0

私は実際に非常にうまく機能する小さなDSLを持っています。私が言ったら

import language.CWMWL

main = runCWMWL $ do
    out (matrixMult, A, 1, row, 1 3 44 6 7)

次にrunCWMWL、によってエクスポートされる関数ですlanguage.CWMWL。これにより、式が解析され、何らかのアクションが実行されます。

私が達成したいのは、これを1000回繰り返す方法があり、タプルの3番目の要素が1から1000までの数字で構成されていることです。私自身のDSLはこれを行うのに十分ではありません。最終的には、最後の要素の文字列も変更したいと思います。

準見積もりなしでこれを行う可能性はありますか?Quasi Quotesはこれに最適なツールですか?

これをエレガントな方法で可能にするために、DSLに含める必要がある、またはラップする必要があるbinops /プリミティブは何ですか?

4

1 に答える 1

2

私が誤解していない限り、準引用符があなたにもっと良いものをもたらすとは思わない

main = runCWMWL $
    sequence [ out (matrixMult, A, n, row, 1 3 44 6 7) | n <- [1..1000] ]

他のアイデアMonadComprehensionsと同様に調べることもできます。RebindableSyntax

于 2013-02-17T00:55:16.860 に答える