我必须找到列表中两个元素的首次出现之间的距离。我们正在使用的程序是Haskell。我一直在线旅行HOURS,以寻求有关如何启动或解决该问题的帮助。请帮忙!
这是我们的定义方式:
gap :: (Eq a) => a -> a -> [a] -> Maybe Int
以下是一些示例:
> gap 3 8 [1..10]
Just 5
> gap 8 3 [1..10]
Nothing
> gap 'h' 'l' "hello"
Just 2
> gap 'h' 'z' "hello"
Nothing
答案 0 :(得分:3)
预期会快速运行的答案:
if(vars.get("myvar") ! null){
FileUtils.writeByteArrayToFile(myfile, bytes);
} else {
FileUtils.writeByteArrayToFile(myfile, prev.getResponseData());
}
如果您不想依靠import Data.List (elemIndex)
gap :: Eq a => a -> a -> [a] -> Maybe Int
gap x y ls = elemIndex y $ dropWhile ((/=) x) ls
,则必须编写并添加自己的Data.List
。
在丹尼尔·瓦格纳(Daniel Wagner)反馈之后,一个替代方案:
elemIndex'
答案 1 :(得分:2)