我有一个数据类型列表,如果存在,我想找到与第一个值匹配的数据类型。如果它不存在,我想返回一个默认值。
data MyType = MyType String Int
findOrMake :: [MyType] -> String -> Int
findOrMake list x = do i <- -- find index
-- if i is a value, return the x[i]
-- if i is not a value, return (MyType x 0)
我有一种直觉,我应该使用fmap
and find
,但我以前从未使用过。