所以,仍在处理这个词典任务。我现在的问题是:文件实际上是编译的,但是只要我想用
插入一些东西insert dict (Hilfe, help)
我收到一个错误,在这种情况下会读取(未定义的变量“hello”) 但是,insert在元组中定义了(String,String),所以这是我不理解的,实际上根本不知道如何修复。
除此之外,我还尝试使用:t on Dictionary,但是它告诉我数据构造函数是未定义的。一旦我将数据字典行添加到文件中,它就不会编译,因为Dictionary是多重定义的。 那么,这是一个/或两个问题,而不是两个都是?因为有些东西看起来很腥。
type Dictionary = [(String, String)]
dict :: Dictionary
dict = []
insert :: Dictionary -> (String,String) -> Dictionary
insert dict (deu, eng) = (deu, eng):dict
请原谅我快速询问看似简单的问题。在这里我真的试图解决无用,而且由于我们对函数式编程的介绍非常乏善可陈,我很确定我只能找到一些我无法找到的错误。 :/
答案 0 :(得分:1)
Haskell中的字符串在它们周围有引号。如果你想插入字符串,你需要在它们周围加上引号。
insert dict ("Hilfe", "help")
您只能使用:t
来查找表达式的类型。您无法执行:t Dictionary
因为Dictionary
是类型。
答案 1 :(得分:0)
顺便说一下:如果不需要patten (deu, eng)
,你可以使用1个变量:
insert :: Dictionary -> (String,String) -> Dictionary
insert dict word = word : dict