Inline Evaluation Adventure
12 comments
·March 12, 2025benjamin314
brucehauman
Let’s throw this relevant link of yours in here as well: https://faster-than-light-memes.xyz/conversation-1.html
brucehauman
Author here: I'm curious if anyone took the time to complete the text adventure?
deathanatos
I got a bit stuck.
(I got the 5 items. Somehow lost :key-code. I think I inadvertently duplicated :close-paren and :unlock-function, though I have no idea how.
In :utility-room, the "bookcas " is missing an e.
When the mouse is over one of those inline-eval boxes, "scroll up" works, "scroll down" does not.
edit: oh, I was trying to play the whole game before the rest of the article too … so that was probably harder than it needed to be ^_^
edit: (pop) seems to be what screws up my inventory, dropping multiple items from the stack, but if :a :b are dropped, they end up as like :b :b ?
edit: I think I beat it? I got to exit-to-freedom, which I'm assuming is the end.
brucehauman
I probably made the puzzle harder than it needed to be...
I fixed the sp error in the utility room.
deathanatos
I think I beat it, assuming reaching exit-to-freedom is the win condition.
I think it's (pop) that screws up my inventory? Seems like it pops two things, and one becomes the other.
Cogito
Completed it. Was really fun, thank you!
I wasn't sure how to chain function calls so had to look that up to implement movei, but apart from that was fairly straightforward (it's (do (<func1>) (<func2>) ...)).
My UI was pretty simple and ended up being
(defn looki [] (display-html (look-html (look))))
(defn movei [dir] (do (move dir) (looki)))
(looki)
(movei :south)
(movei :east)
(movei :north)
(movei :south)
(movei :west)
(unlock-function :spoiler)
(stack)
(push :picture)
(push :spoilers)
(peek)
(pop)
(reset)
brucehauman
Awesome!
Absolutely agree the feeling of this is that the source code is alive. It's like riding a bike, you cannot explain it in words what it is.
I tried to convey the idea in a video here: https://youtu.be/3AqEDzAT4n8?si=aI0ZjWqXVnNDdJ4J