【发布时间】:2017-10-09 21:52:18
【问题描述】:
基本上我想在 x 上应用 f n 次,我只对结果感兴趣。还有比(nth (iterate f x) n)更好的办法吗?
【问题讨论】:
-
这已经非常简洁易读了。除非你打高尔夫球,否则我认为你不会比这更好。如果你觉得它太多了,你总是可以把它塞进一个函数里。
-
我经常只对迭代的结果感兴趣。只是想知道我正在监督是否已经内置了一种更具表现力的方式,例如
(dotimes n x body) -
如果你还没有,我会启动你自己的库,并在其中粘贴一个快捷功能。我找不到更好的“原始”方式来表达这一点。 “f 在 x 上的第 n 次迭代”已经读起来很不错了。
-
@Carcigenicate 嗯,它几乎很好,但是
nth以“错误”的顺序接受它的论点,并且总是难以阅读。如果你想要一些读起来像英语的东西(重要的是,把nth放在n附近),你可以做类似(-> (iterate f x) (nth n)): "iterate f over x n times"。 -
@amalloy 也许会好一点。我尽量避免线程化单个表单。我发现它通常会妨碍可读性。这可能是一个例外。不过个人意见。
标签: clojure