(define (verbose arg)
(display arg) ; display
(newline) ; display newline
arg)) ; evaluate to arg
(if-fun (verbose (> 3 4))
(verbose 'true)
(verbose 'false))
; ==> false
true
false
:
(if-mac (verbose (> 3 4))
(verbose 'true)
(verbose 'false))
; ==> false
false
? , .
, . , , #f
.
:
(define (factorial n)
(if-fun (<= n 2)
n
(* n (factorial (- n 1)))))
(factorial 2)
, , ( 1), ( 0), ( -1)..... . , , .
(define (factorial n)
(if-mac (<= n 2)
n
(* n (factorial (- n 1)))))
(factorial 2)
, , :
(define (factorial n)
(if (<= n 2)
n
(* n (factorial (- n 1)))))
, . , - , , , .
, Scheme Racket . . #!lazy
racket, #!racket
, if
, , . .