2013-11-10から1日間の記事一覧

函数型言語とは

繰り返し処理を定義する (define zero (lambda (s) (lambda (z) z))) (define one (lambda (s) (lambda (z) (s z)))) (define two (lambda (s) (lambda (z) (s(s z))))) (define three (lambda (s) (lambda (z) (s(s(s z)))))) 0にadd1を2回適用する ((two …

データ構造

Last In First Out (LIFO) (define stack '()) (define set-stack (lambda () (set! stack '()) 'done)) (define push (lambda (x) (cond ((null? stack) (set! stack (list x))) (else (set! stack (cons x stack)))) stack)) (define pop (lambda () (let …

級数と再帰

順列・組み合わせ・重複組み合わせの通りの数はなので (define perm (lambda (n r) (cond ((= r 0) 1) ((= r 1) n) (else (* n (perm (- n 1) (- r 1)))) ))) (define comb (lambda (n r) (cond ((= r 0) 1) ((= r n) 1) (else (+ (comb (- n 1) (- r 1)) (c…