Supplemental Material

 

(begin expr1 expr2 expr3 ...)

The begin statement enables us to execute a sequence of expressions. expr1 is executed then expr2 then expr3, etc. The return value is the value of the last expression.

begin is particularly useful when using mutation, as set-struct-field! and set! have void (no) return values.

Example (moves p to a new position):

(define p (make-posn 10 15))
      
(begin
    (set-posn-x! p 3)
    (set-posn-y! p -2)
    "p was modified!")
	

(if predicate trueExpr falseExpr)

The if function is a simplified cond statement with only 2 cases. It is equivalent to


(cond
   [predicate trueExpr]
   [else falseExpr])
   

Example (returns the absolute value of x):

(if (> x 0) 
    x 
    (* -1 x))