在Haskell中使用列表解析的复制函数

huwehgph  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(188)

我偶然发现了这个复制函数,

replicate' n x = [x|y <- [1..n]]

为什么会有y?尽管y没有在输出表达式中出现,但它被赋予了从1到n的值。
我是一个很好的朋友,我很高兴你能来。

8aqjt8rx

8aqjt8rx1#

其思想是列表理解:

[some_expr_involving_y | y <- [1..n]]

将产生n元素的列表,这些元素是对some_expr_involving_y求值的结果,其中将y依次设置为每个数字12、... n
some_expr_involving_y只是某个不依赖于y的常数x的特殊情况下,结果将是xn拷贝,每个拷贝对应于y的一个(未使用的)值。
正如在评论中指出的,使用通配符可能是更好的风格,因为这就是它的用途:

replicate' n x = [x | _ <- [1..n]]

相关问题