Haskell:(String,String)|未定义类型中的未定义变量



因此,仍在处理此Dictionary任务。我现在的问题是:文件实际上是编译的,但一旦有了,我就想插入一些东西

insert dict (Hilfe, help)

我得到一个错误,在本例中,它将读取(未定义的变量"hello")然而,insert在元组中定义了(String,String),所以我不理解这一点,也不知道如何解决。

除此之外,我还尝试在Dictionary上使用:t,但它告诉我数据构造函数是未定义的。一旦我在文件中添加了一行数据Dictionary,它就不会编译,因为Dictionary是多重定义的。那么,这是一个非此即彼的问题,而不是两者都有?因为有什么可疑的东西。

type Dictionary = [(String, String)]
dict :: Dictionary
dict = []
insert :: Dictionary -> (String,String) -> Dictionary
insert dict (deu, eng) = (deu, eng):dict

请原谅我问了这么多看似简单的问题。在这里,我真的试图解决这个问题,但没有成功,而且我们对函数式编程的介绍非常乏味,我很确定这只是我找不到的错误。:/

Haskell中的字符串周围有引号。如果你想插入字符串,你需要在它们周围加引号。
insert dict ("Hilfe", "help")

只能使用:t查找表达式的类型。不能执行:t Dictionary,因为Dictionary类型。

顺便说一句:如果不需要模式(deu, eng),您可以只使用1个变量:

insert :: Dictionary -> (String,String) -> Dictionary
insert dict word = word : dict

最新更新