Haskell编程:数据处理与函数式特性
1. 数据处理基础:zipWith函数
在数据处理中, zipWith 是一个非常实用的库函数。它的作用是将两个列表的元素两两配对,并使用指定的操作来组合每一对元素。其基本形式如下:
zipWith g [a,b,c,...] [d,e,f, ...]
===>
(computes to) [g a d, g b e, g c f, ...]
以下是一些具体的例子:
zipWith max [1,2,3] [2,2,2] ===> [2,2,3]
zipWith (*) [1,2,3] [2,2,2] ===> [2,4,6]
我们可以将其类比为衣服上的拉链,它非常适合用于合并数据流,而且对于无限流同样适用。以FizzBuzz问题为例:
fizzbuzz = zipWith (++) threes fives
main = putStr (unlines fizzbuzz)
这里的 (++) 是字符串连接操作,我们将生成的行列表输出到屏幕,当感到厌烦时可以按 ^C 停止。如果想在Fizzes和Buzzes之间插入数字而不是空白,可以再引入一个包含从1到无穷大数字的列表,并在字符串为空时添加相应数字。
超级会员免费看
订阅专栏 解锁全文
81

被折叠的 条评论
为什么被折叠?



