coffeescriptを初めて書いた.
たしかにこれはHaskellぽい.
引数をいちいちカッコで括るのが面倒だけど.
fib = (n) ->
if n < 2
n
else
fib(n-1) + fib(n-2)
fib2 = (n) ->
if not this.memo then this.memo = []
if memo[n]
memo[n]
else
if n < 2
memo[n] = n
else
memo[n] = fib2(n-1) + fib2(n-2)
time = ->
d = new Date()
d.getSeconds() * 1000 + d.getMilliseconds()
t1 = time()
console.log (fib 40)
t2 = time()
console.log "time : #{t2-t1} msec"
console.log (fib2 40)
t3 = time()
console.log "time : #{t3-t2} msec"
console.log (fib2 1000)
t4 = time()
console.log "time : #{t4-t3} msec"
"a#{b}c" が "a"+b+"c"に変換されるというのが便利.
もちろん適切に括弧で括られるよう.
コメ(0) | トラ(0)