Haskellで解決したい小さな問題があります。文字列内のすべてのワイルドカードを変更する関数を1つの具体的なパラメーターに置き換えましょう。この関数の署名は次のとおりです。
subs :: String -> String -> String -> String
-- example:
-- subs 'x' "x^3 + x + sin(x)" "6.2" will generate
-- "6.2^3 + 6.2 + sin(6.2)"
Text.Regexパッケージを使用できます。
あなたの例は次のようになります。
import Text.Regex(mkRegex, subRegex)
subs :: String -> String -> String -> String
subs wildcard input value = subRegex (mkRegex wildcard) input value
探しているコードとまったく同じように見える例については、http://bluebones.net/2007/01/replace-in-haskell/を参照してください。
このような場合には、 text-format-simpleライブラリを使用できます。
import Text.Format
format "{0}^3 + {0} + sin({0})" ["6.2"]
正規表現()を使用し、 (Perl表記)Text.Regex.Posix
を検索して置き換えます。に/\Wx\W/
置き換えるだけで問題が発生します。x
6.2
x + quux
詳細については、 Haskell Regex Replaceを参照してください(これはSOにインポートする必要があると思います。
追加のハードコアの場合は、式をASTとして解析し、そのレベルで置換を行うことができます。