如何检查字符串/数组中的两个邻居(元素)是否相同

Ric*_*eri 1 haskell functional-programming function

基本上,我有一个问题,如何使haskell中的函数像这样工作:获取字符串的第一个元素,然后取第二个元素并比较它们,然后函数应该继续使用第三个元素从字符串中比较第二个和第三个.

如果必须比较前两个那么接下来的两年将是容易的,但我不能弄清楚在这种特殊情况.

我需要实现这一步,以便编写一个函数,如果找到两个相同的相邻元素,返回True,如果没有任何元素返回False.

谢谢你的帮助.

pat*_*pat 6

实现此目的的更高阶方法(即没有显式递归)是用于zipWith执行列表中元素的逐点比较,从第一个开始,对应列表的元素,从第二个开始(使用tail) ,然后使用or将逐点结果折叠成单个结果.你甚至不需要特殊情况下的空列表,因为zipWith如果它的第二个参数是空列表,它的第三个参数是非严格的.

编辑:解决方案(悬停显示)

hasNeighbors as = or . zipWith (==) as $ tail as