私はハスケルを新しくし、hereのコードを実装してマップを使用して文字列を置き換えようとしています。私が探して試してみました文字列をマップのコンパイルエラーで置き換えます
* Expecting one more argument to `StringMap'
Expected a type, but `StringMap' has kind `* -> *'
* In the type signature:
stringMapReplace :: (Show stringMap) => StringMap -> String -> String
を言うコンパイル時にエラーメッセージを取得していますが、私はエラーのために見つけることができる唯一の答えは、私はStringMap
が何であるかを明確にタイプではないんだということです。しかし、Show stringMap
がやっていたと思った。
import Data.Map
import Data.Strings
type StringMap stringMap = [(String, String)]
myStringMap =
[
("org1", "rep1"),
("org2", "rep2")
]
stringMapReplace :: (Show stringMap) => StringMap -> String -> String
stringMapReplace [] s = s
stringMapReplace (m:ms) s = strReplace ms (replace (fst m) (snd m) s)
main :: IO()
main = do
putStrLn "Enter some text:"
putStrLn =<< stringMapReplace myStringMap <$> toUpper getLine
注:strReplace
コードと間違って何かがある場合、コンパイラは、唯一の今、上記のエラーを与えているように私は、知らないData.Strings
から来ています。他に何か気がついたら、気軽に言いなさい(または、後で練習としてデバッグするために残しておいてください)。
を@chi感謝。今修正されました。 – crockeea