#| Working compatibly with acl2 gets rid of oop sort of except in as much as having a von neumann state object is oop. There are packages, I guess. In the car game (I don't like automobiles so I will eventually rename this something like robot-game) my system is like this (defsystem "car-game" :components ((:file "packages") (:file "macros" :depends-on ("packages")) (:file "side-effects" :depends-on ("macros")) (:file "car-game" :depends-on ("side-effects")))) Where :car-game has been nicknamed to :acl2-user so the logical files, "macros.lisp" and "car-game.lisp" can be loaded just like this: acl2 < (((row . 1) (col . 2)) ((row . 3) (col . 4))) In a throw back to scm's wumpus hunting guide, since I decided future-non-automobile-robots will move between a hypergrid of nodes, I added a graphviz dot language visualizer. I didn't realize before that without the -T argument, graphviz dot outputs a textual description of where it would decide to put its nodes. That's crazy useful for making dumb terminal ascii graphviz graphs, or something like an SDL2 program literally using the graph clustering. |# #| Addendum: I put acl2-primitives in side-effects (Maybe defining some acl2-primitives is a side effect ;p) |#