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