他们,
我的任务是在Haskell中编写电话簿。因此给出了电话簿类型。电话簿将名称(字符串)映射到其电话号码(字符串)。但是现在我在实现'insert'函数时遇到了问题:
下面是代码:
type Phonebook = String -> String
emptyPhonebook :: Phonebook
emptyPhonebook = \_->""
insert :: String -> String -> Phonebook -> Phonebook
insert name number emptyPhonebook = (\name->number) --is this correct?
insert name number existingPhonebook = ??
我的问题:如何在函数中插入函数?我的意思是现在我必须在另一个函数(现有的电话簿)中插入一个由函数(name - > number)组成的条目,或者我错了吗?谢谢你帮助我:))
答案 0 :(得分:3)
这样的事情应该有效:
type Phonebook = String -> String
emptyPhonebook :: Phonebook
emptyPhonebook _ = ""
insert :: String -> String -> Phonebook -> Phonebook
insert name number phonebook =
case phonebook name of
"" -> (\s -> if s == name then number else phonebook s)
_ -> phonebook