+ ;((+ (comb (- N 1) P) (comb (- N 1) (- P 1))))))
+ ((/ (* N (comb (- N 1) (- P 1))) P))))
+(println "comb")
+(println (comb 5 4))
+(println (comb 60 4))
+(println "(comb 12 8) = "(comb 12 8))
+
+;(trace nil)
+
+(setq L '(3 7 + 4 2 + *))
+(setq P '())
+(define (calculExp P L)
+ (cond
+ ((null? L) 0)
+ ((= (first L) '+) (+ (first P) (calculExp (rest P) (rest L))))
+ ((= (first L) '-) (- (first P) (calculExp (rest P) (rest L))))
+ ((= (first L) '*) (* (first P) (calculExp (rest P) (rest L))))
+ ;FIXME: test for divide by zero
+ ((= (first L) '/) (/ (first P) (calculExp (rest P) (rest L))))
+ ((cons (first L) (calculExp P (rest L))))))
+;(println (calculExp P L))