我偶然发现了这个复制函数,
replicate' n x = [x|y <- [1..n]]
为什么会有y?尽管y没有在输出表达式中出现,但它被赋予了从1到n的值。我是一个很好的朋友,我很高兴你能来。
8aqjt8rx1#
其思想是列表理解:
[some_expr_involving_y | y <- [1..n]]
将产生n元素的列表,这些元素是对some_expr_involving_y求值的结果,其中将y依次设置为每个数字1、2、... n。在some_expr_involving_y只是某个不依赖于y的常数x的特殊情况下,结果将是x的n拷贝,每个拷贝对应于y的一个(未使用的)值。正如在评论中指出的,使用通配符可能是更好的风格,因为这就是它的用途:
n
some_expr_involving_y
y
1
2
x
replicate' n x = [x | _ <- [1..n]]
1条答案
按热度按时间8aqjt8rx1#
其思想是列表理解:
将产生
n
元素的列表,这些元素是对some_expr_involving_y
求值的结果,其中将y
依次设置为每个数字1
、2
、...n
。在
some_expr_involving_y
只是某个不依赖于y
的常数x
的特殊情况下,结果将是x
的n
拷贝,每个拷贝对应于y
的一个(未使用的)值。正如在评论中指出的,使用通配符可能是更好的风格,因为这就是它的用途: