haskell - 在绑定结果的列表中查找元素?
问题描述
说我有清单[("sd", 55), ("s", 2), ("fgff", 23), ("s", 999)]
。如何找到第一次出现("s", v)
并绑定v
到关联值?所以例如someFunc "s" mylist
会返回2
。理想情况下,我将能够进行模式匹配并执行("s", v) = ...
我知道我可以创建一个本身使用模式匹配的递归函数,但我正在寻找一种更简洁的方法来利用 Haskell 的已定义函数,就像标准前奏中的那些:))
解决方案
我假设您知道该条目存在于您的列表中l
。在这种情况下,您可以使用列表推导:
v = head[v | ("s", v) <- l]
或者(以及我更喜欢的方式)lookup
基本上将一对列表解释为字典,第一个条目作为键,第二个条目广告对应的值:
Just v = lookup "s" l
请注意,lookup
返回值被包裹在 aMaybe
中以处理该值不存在的情况。
推荐阅读
- php - 没有主题页眉、页脚、侧边栏的完整 Wordpress Post html、脚本和 css
- html - 如何修复这个“Tailwind CSS Deprecation”错误?
- c# - 可以做些什么来防止此 MailKit SMTP 失败?
- reactjs - reactjs中未从父级调用子组件函数
- c++ - C++ 对编译的多重定义
- tensorflow - tensorflow(lambda 文本,标签:文本)仅文本并使用 pyspark 进行调整
- bash - npm 不会安装 sass 并且无法输入密码
- c# - azure 函数应用程序中的 LINQ 子查询返回错误消息
- sql-server - 外部应用内的 WITH 语句
- node.js - 如何从文件夹中删除已添加的 developer-pop?