► |  | How to Design Programs Languages

1 | Beginning Student
2 | Beginning Student with List Abbreviations
3 | Intermediate Student
4 | Intermediate Student with Lambda
5 | Advanced Student
| Index

▼ | 4 | Intermediate Student with Lambda

4.1 | define
4.2 | lambda
4.3 | Function Calls
4.4 | Primitive Operation Names
4.5 | Unchanged Forms

On this page:

define-struct
local
letrec
let
let*
cond
else
if
and
or
time
check-expect
check-within
check-error
check-member-of
check-range
empty
true
false
require

top← prev up next →

#### 4.5`` Unchanged Forms

(define-struct structid (fieldid ...))

The same as Intermediate’s define-struct.

(local [definition ...] expr)

(letrec ([id expr-for-let] ...) expr)

(let ([id expr-for-let] ...) expr)

(let* ([id expr-for-let] ...) expr)

The same as Intermediate’s local, letrec, let, and let*.

(cond [expr expr] ... [expr expr])

else

The same as Beginning’s cond.

(if expr expr expr)

The same as Beginning’s if.

(and expr expr expr ...)

(or expr expr expr ...)

The same as Beginning’s and and or.

(time expr)

The same as Intermediate’s time.

(check-expect expr expr)

(check-within expr expr expr)

(check-error expr expr)

(check-member-of expr expr expr ...)

(check-range expr expr expr)

The same as Beginning’s check-expect, etc.

empty : empty?

true : boolean?

false : boolean?

Constants for the empty list, true, and false.

(require module-path)

The same as Beginning’s require.
top← prev up next →