Open Kevinpgalligan opened 5 months ago
Ended up adding a run-sketch
function as well! I think it's useful to have both: run-blah
looks nicer and we get to see the function signature in Emacs, run-sketch
is useful for me personally because in my mini-framework for Sketch I keep a list of all my sketches and it's nicer to be able to say (run-sketch sketch-var)
than (funcall (alexandria:symbolicate 'run sketch-var))
. Well, I just think it's nice to have both options.
SKETCH> (defsketch test ()
(circle (/ width 2) (/ height 2) 20))
#<STANDARD-CLASS SKETCH::TEST>
SKETCH> (run-sketch 'test :width 200)
#<TEST {100821F773}>
SKETCH> (run-sketch 'missing)
; Evaluation aborted on #<SIMPLE-ERROR "Couldn't find a sketch called MISSING" {1008D31043}>.
SKETCH> (run-test :width 200)
#<TEST {1007A412B3}>
This provides better abstraction for sketches, as the CLOS details of their implementation don't leak as much.
I also considered not generating a new run function for each sketch, but something like
(run-sketch 'blah)
would lead to a worse development experience because the expected arguments wouldn't show up in Emacs.Testing
I ran some of the example sketches, they still work. Also: