2014-05-21 95 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))。