--- /dev/null
+(define (app? x)
+ (and (list? x)
+ (>= (length x) 2)
+ (not (eq? (car x) 'let))
+ (not (eq? (car x) 'lambda))))
+
+(define (let? x)
+ (and (list? x) (eq? (car x) 'let)))
+
+(define let-bindings cadr)
+(define let-body cddr)
+
+(define (lambda? x)
+ (and (list? x) (eq? (car x) 'lambda)))
+
+(define lambda-arg cadr)
+(define lambda-body cddr)
+
+(define (var? x)
+ (and (not (list? x)) (symbol? x)))