Coffeescript 干咖啡脚本函数

Coffeescript 干咖啡脚本函数,coffeescript,dry,Coffeescript,Dry,在“CoffeeScript-加速JavaScript开发”的练习中,我试图不重复地编写此函数: doAndRepeatUntil = (f, pred) -> f() f() until pred() 我如何编写这个函数而不调用f()两次呢?在我看来,您编写它的方式是首选的方式。要避免两次调用f,可以编写: doAndRepeatUntil = (f, pred) -> loop f() break if pred() 但我认为它的可读性和优雅性较

在“CoffeeScript-加速JavaScript开发”的练习中,我试图不重复地编写此函数:

doAndRepeatUntil = (f, pred) ->
  f() 
  f() until pred()

我如何编写这个函数而不调用
f()
两次呢?

在我看来,您编写它的方式是首选的方式。要避免两次调用
f
,可以编写:

doAndRepeatUntil = (f, pred) ->
  loop
    f()
    break if pred()

但我认为它的可读性和优雅性较差(相当于使用
而(true)
)。

如果您在附录1.2下进行检查,您会发现您已经得到了练习要求的答案。目标只是将重复包含在函数中,而不是完全消除它。你是故意要多做一步吗?