Haskell电话簿添加元素 [英] Haskell Phonebook adding elements
问题描述
他们,
我的任务是在Haskell中编写电话簿。因此类型电话簿被给出。电话簿将姓名(字符串)映射到他们的电话号码(字符串)。但现在我遇到了实现函数'insert'的问题:
继承代码:
type Phonebook = String - >字符串
emptyPhonebook ::电话簿
emptyPhonebook = \ _->
insert :: String - >字符串 - >电话簿 - >电话簿
插入名称号码emptyPhonebook =(\名称 - >号码) - 这是正确的吗?
插入名称号码existingPhonebook = ??
我的问题:如何在函数中插入函数?我的意思是我现在必须在另一个函数(现有的电话簿)中插入一个包含函数(名称 - >编号)的条目,还是我错了?感谢您的帮助:)
类似这样的应用程序应该可以工作:
type Phonebook = String - >字符串
emptyPhonebook ::电话簿
emptyPhonebook _ =
insert :: String - >字符串 - >电话簿 - >电话簿
插入姓名号码电话簿=
病例电话簿名称
- > (\ s - >如果s == name然后号码其他电话簿s)
_ - >电话簿
He guys,
My task is to program a phonebook in Haskell. Therefore type Phonebook is given. The Phonebook maps names(String) to their phone numbers(String). But now I have problems implementing the function 'insert':
Heres the code:
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 = ??
My question: How do I insert a function in a function? I mean now I have to insert an entry consisting of a function (name -> number) in another function (existing Phonebook) or am I wrong? Thanks for helping me out :)
Something like this should work:
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
这篇关于Haskell电话簿添加元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!