intime o'

あの立派な知識はことごとく昨日の夢である!(ラ・メトリ著「人間機械論」より)
coffee 2012/08/25 (Sat.)
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)