yaotti's diary

Software is Eating the World

?

4章のmake-lambdaについて

make-lambdaはlambda式を作る手続き。 例えば (lambda (x y) (+ x y))というlambda式(S式)を作る。 本では (define (make-lambda parameters body) (cons 'lambda (cons parameters body))) となっていたけれど、自分は (define (make-lambda parameters bod…

手続き

(lambda (amount) (if (<= amount balance) (begin (set! balance (- balance amount)) balance) (error "Insufficient balance" balance))) は評価してもエラー出なくて (if (<= amount balance) (begin (set! balance (- balance amount)) balance) (error…

この2つの違い

c ?

char tmp1[10]; char *tmp2 = malloc(10); tmp1は長さMAXNUM(cは1つ1バイトなのでMAXNUMバイト)の配列 tmp2はMAXNUMバイトの領域を指すポインタ printf("%d\n", sizeof(tmp1)); printf("%d\n", sizeof(*tmp2)); 結果は前者は10、後者は1。 tmp2はまだ領域を…