Call-by-value evaluation let and := map x,y to if x then y else false; or := map x,y to if x then true else y; member := map x,l to and(cons?(l), or(x = first(l), member(x, cdr(l)))); in member(1, cons(1, null)) => let ... in (map x,l to ...)(1, cons(1, null)) => let ... in and(cons?(cons(1, null)), or(1 = first(cons(1, null)), member(1, cdr(cons(1, null))))) => let ... in and(true, or(1 = first(cons(1, null)), member(1, cdr(cons(1, null))))) => let ... in and(true, (map x,y to ...)(1 = first(cons(1, null)), member(1, cdr(cons(1, null))))) => let ... in and(true, (map x,y to ...)(1 = 1, member(1, cdr(cons(1, null))))) => let ... in and(true, (map x,y to ...)(true, member(1, cdr(cons(1, null))))) => let ... in and(true, (map x,y to ...)(true, (map x,l to ...)(1, cdr(cons(1, null))))) => let ... in and(true, (map x,y to ...)(true, (map x,l to ...)(1, null))) => let ... in and(true, (map x,y to ...)(true, and(cons?(null), or(1 = first(null), member(1, cdr(null)))))) => let ... in and(true, (map x,y to ...)(true, (map x,y to ...)(cons?(null), or(1 = first(null), member(1, cdr(null)))))) => let ... in and(true, (map x,y to ...)(true, (map x,y to ...)(false, or(1 = first(null), member(1, cdr(null)))))) => let ... in and(true, (map x,y to ...)(true, (map x,y to ...)(false, (map x,y to ...)(1 = first(null), member(1, cdr(null)))))) => let ... in and(true, (map x,y to ...)(true, (map x,y to ...)(false, (map x,y to ...)(1 = !!!, member(1, cdr(null)))))) Runtime error