0
提取元素,我有以下元组:如何从一个元组在Haskell
type Id = Int
type Name = String
type FSK = Int
type Movie = (Id, Name, FSK)
现在我想定义从一个给定的名单一样,提取电影的功能:
extract :: Id -> [Movie] -> (Maybe Movie, [Movie])
extract = .... ??
这样,当我给一个id和一个电影列表,它提取: 1)没有+给定的列表,如果ID被发现 2)只是+电影,和没有该电影的新列表,如果给定找到了id,并从列表中删除了电影
例如:
*Main> extract 0 [(1,"Matrix",16),(2,"Gladiator",0)]
(Nothing,[(1,"Matrix",16),(2,"Gladiator",0)])
*Main> extract 1 [(1,"Matrix",16),(2,"Gladiator",0)]
(Just (1,"Matrix",16),[(2,"Gladiator",0)])
我应该如何定义函数?
到目前为止你有多远? '.... ??'不是一个很大的尝试。通常你可以通过模式匹配来选择你所拥有的东西,例如你的'[Movie]'列表。 – luqui 2014-10-29 02:15:09
它对'[]'做什么?它为'movie:xs |做了什么?电影== ID'?它对于其他情况有什么作用? – alternative 2014-10-29 02:33:25