元组列表作为Haskell中的函数参数

pmac89

如何使用包含元组列表的参数定义函数?所以输入的一个例子是

[("hey", False), ("you", True)]

我的函数将元组列表作为:[[(String,Bool)]因此,它是这样的:

aFunc :: [(String, Bool)] -> Bool
aFunc ???? = 

那我该为什么填写???? 可以访问我的元组?任何帮助将是巨大的。谢谢。

编辑:

aFunc :: [(String, Bool)] -> Bool
aFunc aTuple = mapM_ lookup aTuple?

那么如何在函数中访问我的元组呢?那不行

贝内什

看来您正在尝试实现自己的lookup您可以使用列表推导编写一个简单的版本:

lookup' :: String -> [(String,Bool)] -> Bool
lookup' k lkp = head $ [v | (k',v) <- lkp, k'==k]

或使用filter

lookup'' :: String -> [(String,Bool)] -> Bool
lookup'' k lkp = snd $ head $ filter ((==k) . fst) lkp

请注意,这些版本是不安全的-也就是说,如果列表中不包含您的商品,它们将以丑陋且无信息的错误失败:

ghci> lookup' "foo" [("bar",True)]
*** Exception: Prelude.head: empty list

您可以通过编写自己的自定义错误消息来解决此问题:

lookupErr :: String -> [(String,Bool)] -> Bool
lookupErr k lkp = case [v | (k',v) <- lkp, k'==k] of
                     (v:_) -> v
                     [] -> error "Key not found!"

更好的方法是返回a Maybe Bool

lookupMaybe :: String -> [(String,Bool)] -> Maybe Bool
lookupMaybe k lkp = case [v | (k',v) <- lkp, k'==k] of
                     (v:_) -> Just v
                     [] -> Nothing

库版本采用这种方法,并具有更通用的签名:

lookup :: (Eq a) => a -> [(a,b)] -> Maybe b

您可以在此处阅读其实现

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SWIFT中的元组数组作为函数的参数

来自分类Dev

如何在函数中将元组列表作为参数传递?

来自分类Dev

Haskell:方程作为函数中的参数

来自分类Dev

如何基于Haskell中的参数递归删除元组列表

来自分类Dev

如何基于Haskell中的参数递归删除元组列表

来自分类Dev

使用空元组作为函数中的默认可迭代参数

来自分类Dev

Python:将元组作为函数中的参数传递

来自分类Dev

参数列表中的元组

来自分类Dev

在元组中搜索函数的参数

来自分类Dev

过滤列表列表中的元组[Haskell]

来自分类Dev

列表到haskell中的元组列表?

来自分类Dev

过滤列表列表中的元组[Haskell]

来自分类Dev

haskell中的函数参数

来自分类Dev

将值列表作为参数传递给R中的函数

来自分类Dev

在递归函数中传递大量列表作为参数时的性能?

来自分类Dev

在Scala中解开列表或映射作为函数参数

来自分类Dev

将列表作为普通参数传递给python中的函数

来自分类Dev

Haskell中的列表中的连续n元组

来自分类Dev

Haskell从两个列表中绘制函数参数

来自分类Dev

Haskell从两个列表中绘制函数参数

来自分类Dev

你如何在haskell的函数参数中传递列表?

来自分类Dev

空元组作为python中的except参数

来自分类Dev

在python中,如何拆分元组并作为map函数的单独参数传递

来自分类Dev

在python中,如何拆分元组并作为map函数的单独参数传递

来自分类Dev

元组列表作为Python中字典的键

来自分类Dev

在Haskell中对元组列表进行递归

来自分类Dev

如何汇总Haskell中的元组列表?

来自分类Dev

从Haskell的元组列表中获取元素

来自分类Dev

在Haskell列表中对元组进行排序

Related 相关文章

热门标签

归档