【问题标题】:Haskell --- error using SplitOn ","Haskell --- 使用 SplitOn 时出错 ","
【发布时间】:2015-05-31 07:38:48
【问题描述】:
getLines = liftM lines . readFile

main = do
    argv <- getArgs
    name <- getProgName
    if not (null argv)
    then do
           let file = head argv 
           list <- getLines file
           let olist = mergesort (<=) list
           let splitter = splitOn "," olist
           loop olist
    else hPutStr stderr $ "usage: " ++ name ++ " filename"

loop a = do 
    line <- getLine
    case line of
     "help"  -> putStrLn "print - prints list in alphabetical order\n\
                \quit  - exits program"
     "print" -> do putStrLn "[print]"
                   mapM_ putStrLn a
                   putStr "\n"
     "quit"  -> do putStrLn "[quit]" 
                   exitSuccess
     _       -> putStrLn "invalid command" 
    loop a

我收到此错误: 无法将类型“[Char]”与“Char”匹配 预期类型:[字符] 实际类型:[String]

有什么建议吗?

【问题讨论】:

    标签: haskell


    【解决方案1】:

    char 常量需要使用单引号。 See this

    let splitter = splitOn ',' olist
    

    【讨论】:

    • 我试过了,但又遇到了另一个错误:无法匹配预期的类型[String]' with actual type Char'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多