2014-05-21 50 views
1

从一个练习中“的CoffeeScript - 加速JavaScript开发,”我正在努力写不重复这样的功能:DRY中的CoffeeScript功能

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

我怎么能不写调用f()两次这个功能呢?

+0

如果您查看附录1.2,您会发现您已经有了练习所要求的答案。目的只是为了控制一个函数中的重复,而不是完全根除它。你有意尝试额外的步骤吗? –

回答

1

在我看来,你写的方式是首选。为了避免两次调用f一个可以写:

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

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