Stepanov's biggest blunder? The curious case of adjacent difference
9 months ago
- #Discrete Calculus
- #C++
- #Algorithm Design
- C++中的std::adjacent_difference通过计算相邻元素的差值并原样保留首元素,这种类型不匹配的设计限制了其实用性
- 保留首元素的设计刻意保持了与std::partial_sum的对称性,使得原始序列能够被完整重构
- 离散微积分将std::adjacent_difference和std::partial_sum关联到微积分基本定理,体现了微分与积分的思想
- 文章批评std::adjacent_difference的设计缺乏泛化性,破坏了与连续微积分导数的对称关系
- q编程语言的deltas函数通过允许种子值提供了更灵活的方案,在无类型约束下仍保持对称性