> (my-if my#t 5 8) 5 > (my-if my#f 5 8) 8 > (my-if my#f (/ 2 0) 8) [image] [image] /: division by zero > (if #f (/ 2 0) 8) 8 > (my-if my#f (lambda () (/ 2 0)) (lambda () 8)) # > (my-if my#f (lambda () (/ 2 0)) (lambda () 8)) 8 > (my-if my#t (lambda () (/ 2 0)) (lambda () 8)) [image] [image] /: division by zero > (if #f (/ 2 0) 8) > (my-if my#f (/ 2 0) 8) [image] [image] /: division by zero > (/ 2 0) [image] [image] /: division by zero > (define (f) (/ 2 0)) > (f) [image] [image] /: division by zero > (define (f x) (if (< x 2) (/ 2 0) 8)) > (f 0) [image] [image] /: division by zero > (f 5) 8 > (define (f) (/ 2 0)) > (define (g) 8) > (define f (/ 2 0)) [image] [image] /: division by zero > (my-if my#f f g) # > (my-if my#f f g) [image] [image] f: undefined; cannot reference an identifier before its definition > (define f (/ 2 0)) [image] [image] /: division by zero > (define (f) (/ 2 0)) > (define (g) 8) > (my-if my#f f g) 8 > (my-if my#t f g) [image] [image] /: division by zero > (fact 5) 120 > > (fact 5) 120 > (fact 5) 120 [image] [image] repeated: undefined; cannot reference an identifier before its definition [image] [image] compose: undefined; cannot reference an identifier before its definition [image] [image] id: undefined; cannot reference an identifier before its definition [image] [image] id: undefined; cannot reference an identifier before its definition > (gamma 'empty) # > ((gamma 'empty) 0) 1 > ((gamma "bla") 0) 1 > ((gamma 'empty) 0) 1 > ((gamma 'empty) 1) [image] [image] application: not a procedure; expected a procedure that can be applied to arguments given: empty > (fact 10) 3628800 > (fact 20) 2432902008176640000 > (fact 49) 608281864034267560872252163321295376887552831379210240000000000 > (fact 50) [image] [image] application: not a procedure; expected a procedure that can be applied to arguments given: empty [image] [image] gamma-inf: undefined; cannot reference an identifier before its definition > [image] Interactions disabled [image] [image] =: contract violation expected: number? given: empty argument position: 1st > (fact 2) 2 > (fact 5) 120 > (fact 7) 5040 > (fact 7) 5040 > (fact 8) 40320 > (2^ 5) 32 > (2^ 10) 1024 > (2^ 10) > (fact 5) # > (fact 5) 120 > (2^ 10) 1024 > (2^ 10) 1024 > (2^ 10) 1024