是否有某个现成的核心函数可以用来分割一个已排序的列表,使得[1 2 3 7 8 14 15 16 17 20 21 22]变成[[1 2 3] [7 8] [14 15 16 17] [20 21 22]]?
我能想到用循环来实现这一功能(每次当前元素与上一个元素之间的差大于1时开始一个新列表),但我怀疑是否存在一种函数式的方式来表达这一点。
为了便于理解,这个问题是一个简化版的数据清理练习,我正在试图通过检查数据的时间戳之间的差异来识别传感器数据收集中断的位置(例如,停电)。我可以看到split-with等函数,但我认为不能将这些函数的谓词设置成接收序列中前一个元素的值,以实现对序列中元素的比较。
感谢你的考虑 :)