我有下面的代码在Haskell:哈斯克尔:从文件中读取到一个变量
import System.IO
data Plaster = Plaster [String] deriving (Read, Show)
main = do putStrLn "Please choose path:"
path <- getLine
openn <- openFile path ReadMode
plaster1 <- hGetLine openn
let plaster2 = read plaster1::Plaster
putStrLn(plaster1)
getFirst :: Plaster -> String
getFirst (Plaster (x:xs)) = x
getFirst (Plaster []) = []
我运行主选择与Plaster
实例的单实例文件路径。然后我想申请功能getFirst
(我希望)变量plaster2
,但我收到:"Variable not in scope: plaster2"
。我该怎么做,从文件读取数据到变量?
作为贴在这里,代码不编译:简单地用各种
Plaster
值调用它GHCI ,但不包含OP中报告的错误消息。请重新发布代码,确保格式正确,因为Haskell使用重要的空白。 –@MarkSeemann谢谢你提到这一点。现在它应该正确编译。 – Czarek
确实,它现在编译。但是,这也意味着它不会产生报告的编译器错误。 –