如何从 haskell 中的文件中提取数据
How do I extract data from a file in haskell
我需要打开一个文件,读取第一行,将数字转换为整数 X,然后从第二行读取一个 X 整数数组。可以在 Haskell 内完成吗?
以下代码:
main = do
val1 <- getLine
val2 <- getLine
print val1
print map read (words val2) :: Int
出现此错误:
Couldn't match expected type `(String -> a1) -> [String] -> Int'
with actual type `IO ()'
由于懒惰,你通常不用担心逐行阅读,getContents 就可以了。虽然,在你的情况下,也许调用 getLine 两次并不是那么糟糕。
你的代码很好(虽然它不只从列表中取 X 数字),只是你的类型不对。这条线应该让你去:
print (map read (words val2) :: [Int])
您可能还想使用 val1,如下所示:
print $ take (read val1) (map read (words val2) :: [Int])
我需要打开一个文件,读取第一行,将数字转换为整数 X,然后从第二行读取一个 X 整数数组。可以在 Haskell 内完成吗?
以下代码:
main = do
val1 <- getLine
val2 <- getLine
print val1
print map read (words val2) :: Int
出现此错误:
Couldn't match expected type `(String -> a1) -> [String] -> Int'
with actual type `IO ()'
由于懒惰,你通常不用担心逐行阅读,getContents 就可以了。虽然,在你的情况下,也许调用 getLine 两次并不是那么糟糕。
你的代码很好(虽然它不只从列表中取 X 数字),只是你的类型不对。这条线应该让你去:
print (map read (words val2) :: [Int])
您可能还想使用 val1,如下所示:
print $ take (read val1) (map read (words val2) :: [Int])