是否存在某个现有的核心函数可以用来对已排序的列表进行分区,使 [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 这样的函数,但我认为提供的谓词不能提供序列中前一项的值,以便对序列中的元素进行比较。
谢谢您考虑:)