任何人都可以給我一個underscore.js _.memoize()的例子嗎?實例中的underscore.js _.memoize()示例?
最好使用hashFunction,甚至更優選使用coffeescript?
這裏是一個可愛的改變計數功能從SICP在CoffeeScript中略加修改:
countChange = (amount)->
cc = (amount, kindsOfCoins)->
firstDenomination = (kindsOfCoins)->
switch kindsOfCoins
when 1 then 1
when 2 then 5
when 3 then 10
when 4 then 25
if amount is 0 then 1
else if amount < 0 or kindsOfCoins is 0 then 0
else
(cc amount, (kindsOfCoins - 1)) +
(cc (amount - firstDenomination(kindsOfCoins)), kindsOfCoins)
cc amount*100, 4
console.log "Ways to make change for $0.85: " + countChange(.85)
我怎麼可能會使用下劃線的_.memoize()上的例子嗎?
非常感謝提前!
ps ..另外,請不要猶豫,以功能編碼的方式拍攝漏洞..我很新的咖啡標記和任何幫助使代碼更習慣性也歡迎。
哇!夢幻般的答案全線。非常感謝所有的細節和重組。非常有見地。 – James 2012-04-16 03:47:09
快速跟進問:在hash函數中爲什麼你會返回這個:「#{a},#{k}」,而不是:[a,k] – James 2012-04-16 13:13:13
@James:哈希函數必須返回可以使用的東西作爲「備忘錄」對象中的一個關鍵字,與使用'[a,k] .toString()'進行某種合理操作的瀏覽器相比,更好地明確轉換。 – 2012-04-16 17:16:13