【发布时间】:2015-05-05 01:07:42
【问题描述】:
使用 Maybe 数据类型确定列表中的数字是否在第二个列表的范围内的最佳方法是什么?
到目前为止我所拥有的:
getElems :: [Int] -> [a] -> [Maybe a]
getElems [xs] ys
| head(tail[(xs)]) > head(tail[(ys)]) = [Nothing]
| otherwise = [Just xs]
它需要返回与指定位置相对应的那些元素。取决于位置是否大于列表大小,它返回 Nothing,否则返回值。
例如:
getElems [2,4] [1..10] ) [Just 3,Just 5]
getElems [2,4] [1..4] ) [Just 3,Nothing]
【问题讨论】:
-
请注意,
[xs]匹配单元素列表,将其唯一值分配给名称xs。你可能想要更像getElems xs ys的东西。