2007-03-02から1日間の記事一覧

Array.uniq

「Arrayにuniqってあったけ?」という話をなんとなく聞いていて、実装を考える。 with (Array) { prototype.uniq1 = function() { var src = this; var dest = new Array; var buf = src[0]; for(var i=1; i<=src.length; buf=src[i++]) { if(!src[i] || buf…

ジェネレータって…

こんな感じかな? function make_fib() { var a = 1; var b = 1; return function() { var buf = a; a = b; b = buf + b; return buf; } } var fib = make_fib(); for(var i=0; i<10; i++) print(fib()); 状態を持つ関数はジェネレータなのかな… make_fib()…

ジェネレータ その2

make_fib()をなくそうとしてみる。 function fib(func) { var a = 1; var b = 1; func.next = function() { func(a); var t = a; a = b; b = t + a; } } fib(print); print.next(); print.next(); print.next(); print.next(); print.next(); うーん、yield…

JavaScript 1.7風

もう寝ます… function yield(nextval) { var generator = {}; generator.next = function() { return (typeof(nextval) == "function") ? nextval() : nextval; } return generator; } function make_fib() { var a = 1; var b = 1; return yield(function()…

Essays

WEB

http://hagi.is.s.u-tokyo.ac.jp/~hagiya/#essays

最大公約数問題

function gdc(a, b) { return (b == 0) ? a : gdc(b, (a % b)); } print(gdc(10, 4)); print(gdc(35, 21)); print(gdc(150, 36));

テンプレート

http://phpspot.org/blog/archives/2006/08/javascriptrnd.html http://la.ma.la/blog/diary_200512291411.htm function Template(src) { var tmpl = new String(src); tmpl.merge = function(ns) { var fn = function(w, g) { g = g.split("|"); var cnt = …