【问题标题】:Haskell - List comprehension in a list of tuples (a,[a])Haskell - 元组列表中的列表理解(a,[a])
【发布时间】:2012-12-27 22:17:53
【问题描述】:

那么,让我们进入正题:

f :: Eq a => a -> [(a,[a])] -> [(a,[a])]
f x list = [(a,[m]) | (a,[m]) <- list, x == a]

所以:

   f 1 [(1,[1])] = [(1,[1])]

但是

  f 1 [(1,[1,1])] = []

为什么会这样?? 谢谢!

(我是新手,如果问题太愚蠢,我很抱歉,但我真的找不到解释)

【问题讨论】:

    标签: haskell tuples list-comprehension


    【解决方案1】:

    这是因为[1,1] 与模式[m] 不匹配。后者表示一个项目的列表(除非在应该使用类型名称的地方使用)。 Haskell 已经知道该对的第二个元素是一个列表(通过查看 list 参数的类型)并且不需要明确告知。

    【讨论】:

    • 我现在有一个令人兴奋的时刻!哈哈。确切地说,[m] 表示一个元素的列表,现在我明白了。非常感谢! =D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    • 2021-01-12
    • 2023-04-10
    • 2021-02-18
    • 1970-01-01
    相关资源
    最近更新 更多