我在从控制台使用readLn
读取值。如何使用不带双引号的字符串读取数据?
我想编写一个函数:
requestValue :: String -> IO a
requestValue s = do
putStrLn $ "Please enter a new value for " ++ s
readLn
我则是能够做到的,例如,
changeAge :: Person -> IO Person
changeAge p = do
age' <- requestValue "age"
return $ p { age = age'}
changeName :: Person -> IO Person
changeName p = do
name' <- requestValue "name"
return $ p { name = name'}
我的问题是,字符串的读取实例似乎需要字符串在引号中。我不希望有在控制台输入"Fred"
改名字的时候我真的只想在Fred
输入。
是否有一个简单的方法来做到这一点,保持requestValue
多态?
你不应该也照顾逃脱引号的字符串? – Peaker 2011-05-14 22:54:03