gpt4 book ai didi

haskell - 通过 Data.Map 进行模式匹配

转载 作者:行者123 更新时间:2023-12-02 15:12:44 25 4
gpt4 key购买 nike

我进行了搜索,但令人惊讶的是,没有找到任何可以帮助我对其执行模式匹配的内容。我需要确保在我的 map “变量”中正好有 3 个键。就是这样。我想要使​​用模式匹配,而不是“if ... then ... else”,因为它更容易阅读并且似乎更符合 Haskell 方式。所以:

myFunction :: Map String String
--.......................

main = do
let var1 = myFunction
-- how do I ensure it has exactly 3 keys in it and if not raise an error?

最佳答案

您无法对抽象数据类型进行模式匹配,因为您无权访问它们的构造函数1,因此您必须使用“Data.Map”模块提供的函数。

但请注意,您可以使用 size::Map k a -> Int 函数。如果你不喜欢 if .. then .. else .. (这绝不是错误或不合时宜的),你可以使用模式保护:

foo m | size m == 3 = ...
| otherwise = error "Not three element"

1 这里忽略 View 模式和模式同义词,但这些只是语法糖。

关于haskell - 通过 Data.Map 进行模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24721710/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com