如何在列表中找到一个项目然后返回它的对?

时间:2015-11-01 17:41:16

标签: haskell

我有一个列表,像这样[('A',1),('B',2),..] 我想做一个关键值搜索。 我已经找到了查找,但它返回了一个'​​Maybe Int'。 那么是否有任何函数可以返回键的值,并返回正常的int?

2 个答案:

答案 0 :(得分:1)

如果密钥不在列表中,您希望它返回什么?

有一个原因是查找返回Maybe Int而不是Int - 来强制程序员处理失败案例。

处理may的一种简单方法是使用默认值,例如:

withDefaultValue = fromMaybe 0 (lookup key myList)

如果您100%确定该值在列表中,则可以使用fromJust

result = fromJust (lookup key myList)

如果列表可能不包含该项,但您无法处理该函数中代码中的失败,请将Maybe从函数中传出,直到它到达代码的一部分为止可以处理失败。

答案 1 :(得分:0)

如果密钥不在列表中,该功能应该做什么?

如果您确定该密钥在列表中,那么

import Data.Maybe

并通过fromJust运行结果(即Maybe Int)。你将得到一个简单的Int,当密钥不在列表中时,你会得到一个例外。