私はHaskellでプロジェクトオイラーの問題に対する答えをそのように書き始めました
problem1 = ...
problem2 = ...
それらをすべて一緒に表示するために私はこのようなものを使用しています
problems x = "print $ zip [1..] [" ++ intercalate "," (take x stringList) ++ "]"
where
stringList = map ("fromIntegral problem"++) stringInts
stringInts = map show [1..]
main = print $ zip [1..] [fromIntegral problem1,fromIntegral problem2,...] (copy-pasta from ghci'ing problems string)
コピー貼り付けなしでこれを行う方法はありますか?
m4でマクロを定義することを検討しましたが、problemiをproblem1に変換するのに問題がありました。m4には、次のような中置演算子のバッククォートにも問題がありました。
x `mod` 3 == 0
そのため、ドキュメントの残り全体をm4ブロックコメントでラップする必要がありました
cプリプロセッサマクロの定義を検討しましたが、forループ(またはループ)がサポートされていないことがわかります。
これを行うHaskellの方法があることを願っています