在 Haskell 中实现 Generic zip 函数
其实嗫,这个问题已经有标准和其他的解决方案了。标准解决方案参见 Control.Applicative
中的 ZipList
,不过这东东用起来蛮麻烦的说;其他解决方案见 bff 库的 Data.Zippable
模块,嗯,我还没搞明白这玩意怎么用,不过总感觉杀鸡用牛刀了有点(Template Haskell ,以及其他依赖)。
所以,如果你只是跟我一样,看 Data.List
中的那一砣 zipn
不顺眼的话(其实也只是看着不顺哈,用着还是蛮顺的,反正实现不用我写),一个更简单的方案在此: