我已经在这个项目上工作了很长时间,只想询问是否可以将字符串分成一组列表。目前我有
type Rate = (String,Int)
type Film = (String,String,Int,[Rate])
testDatabase :: [Film]
testDatabase = [("Blade Runner","Ridley Scott",1982,[("Amy",5), ("Bill",8), ("Ian",7), ("Kevin",9), ("Emma",4), ("Sam",7), ("Megan",4)]),("The Fly","David Cronenberg",1986,[("Megan",4), ("Fred",7), ("Chris",5), ("Ian",0), ("Amy",6)])...
我已经定制了很多功能,可以使用[Film]
类型。
当我尝试从文本文件导入数据时出现了我的问题。
使用readFile
我只能阅读
[("Blade Runner","Ridley Scott",1982,[("Amy",5), ("Bill",8), ("Ian",7), ("Kevin",9), ("Emma",4), ("Sam",7), ("Megan",4)]),("The Fly","David Cronenberg",1986,[("Megan",4), ("Fred",7), ("Chris",5), ("Ian",0), ("Amy",6)])
as
"[("Blade Runner","Ridley Scott",1982,[("Amy",5), ("Bill",8), ("Ian",7), ("Kevin",9), ("Emma",4), ("Sam",7), ("Megan",4)]),("The Fly","David Cronenberg",1986,[("Megan",4), ("Fred",7), ("Chris",5), ("Ian",0), ("Amy",6)])"
并且我不知道是否有办法让readFile
读取不同的数据类型而不是字符串,或者将此字符串转换为适合数据类型。
任何建议都会非常感激。对不起,如果我没有说好问题。总之,有没有办法让字符串只是数据才能实现到一个类型中,或者readFile
是否有String
以外的其他方式?
提前谢谢。
答案 0 :(得分:0)
您可以使用read
:
main = do
string <- readfile "data.txt"
let testDatabase = read string :: [Film]