ACL2 !>(app nil '(x y z)) (X Y Z)ACL2 !>(app '(1 2 3) '(4 5 6 7)) (1 2 3 4 5 6 7)
ACL2 !>(app '(a b c d e f g) '(x y z)) ; click here for an explanation (A B C D E F G X Y Z)
ACL2 !>(app (app '(1 2) '(3 4)) '(5 6)) (1 2 3 4 5 6)
ACL2 !>(app '(1 2) (app '(3 4) '(5 6))) (1 2 3 4 5 6)
ACL2!>(let ((a '(1 2)) (b '(3 4)) (c '(5 6))) (equal (app (app a b) c) (app a (app b c)))) T
As we can see from these examples, ACL2 functions can be executed more or less as Common Lisp.
The last three examples suggest an interesting property of app
.