表达式iterate (1+) 1
的计算结果为[1, 2, 3, ...]
我可以执行iterate ((1+) (1+)) (1, 1)
之类的操作,以便获得[(1, 1), (2, 2), ... ]
吗?如果是,语法是什么?
答案 0 :(得分:4)
此语法应该可以正常工作:
currentTime
还有很多其他方法可以让这只猫受到伤害:
iterate (\(x,y) -> (x+1, y+1)) (1, 1)
......还有更多。
答案 1 :(得分:0)
扩展Daniel Wagner的回答 - Data.List
' s iterate
将函数作为第一个参数。 iterate
的类型签名是
(a -> a) -> a -> [a]
意味着第一个参数中的函数只需返回与摄取相同的类型。这可以是匿名函数,如Daniel的答案或函数名称所示。例如;他的例子可以使用像这样的命名函数重写:
import Data.List (iterate)
addOne (x, y) = (x + 1, y + 1)
iterate addOne (1, 1)