我試圖編寫一個函數,doAndRepeatUntil
調用函數f
,直到謂詞/條件pred
爲真。執行函數,直到謂詞滿足
在下面的代碼中,我期望@sum
從0開始,然後打印10, 20, ..., 90, 100
然後終止。
doAndRepeatUntil = (f, pred) ->
console.log @sum
f() until pred()
@sum = 0
f = ->
@sum += 10
pred = ->
@sum >= 100
console.log f() # NaN
doAndRepeatUntil(f, pred) # infinite loop
但是,我看到f()
打印出來NaN
。並且doAndRepeatUntil(f,pred)
旋轉無限循環。
你確定'@'是你認爲它在任何地方你使用它? –
不,我不明顯 –