2009-01-07から1日間の記事一覧

レコード型

なんでOCamlのレコード型のフィールド名はみんな同じ空の下で管理されるんだろう。 # type a = { id : string; name : string };; type a = { id : string; name : string; } # type b = { id : string; value : int };; type b = { id : string; value : in…

パターンマッチによる再帰

CL-USER> (defmethod my-fold (f e (ls (eql nil))) e) CL-USER> (defmethod my-fold (f e ls) (my-fold f (funcall f e (car ls)) (cdr ls)) ) CL-USER> (my-fold #'(lambda (x y) (cons y x)) '() '(5 4 3 2 1)) (1 2 3 4 5) 思いつきでmultimethodsでやっ…