誰でも私にunderscore.js _.memoize()の動作例を教えてもらえますか?underscore.js _.memoize()の実際の動作の例ですか?
好ましくはhashFunctionを使用し、さらに好ましくは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を使用する場合があります。ここでは
はCoffeeScriptの中SICPからそのキュートな変更カウント機能を少し変更したバージョンですか?
事前に感謝します。
ps ..また、機能がコード化されている方法で穴を開けることを躊躇しないでください。私はcoffeescriptに非常に新しいですし、そのコードをもっと慣用的にすることについての助けも歓迎です。
うわー!全面的に素晴らしい答えです。すべての詳細とリストラに感謝します。すべての非常に洞察力のある。 – James
クイックフォローアップQ:hashFunctionで、なぜこれを返すのですか?:[a、k] – James
@James:ハッシュ関数は何かを返す必要があります'memo'オブジェクトのキーとして、' [a、k] .toString() 'で賢明なやり方をブラウザーに頼るよりも変換を明示する方が良いでしょう。 –