我觉得我一定遗漏了一些明显的东西。将列表分解为头部和尾部,然后在尾部递归是一种标准的函数式编程技术,但我正在努力为Swift中的Sliceable类型执行此操作。我有一个遵循这种模式的递归函数:funcrecurseArray(arr:[Int])->[Int]{guardletfirst=arr.firstelse{return[]}letrest=recurseArray(Array(dropFirst(arr)))letnext=rest.first??0return[first+next]+rest}显然,真正的代码所做的不仅仅是将每个数字加到下一个。注意对Array(drop