Right, but once again, adding a few characters may make things more consistent, but does it aid clarity? I really don't know either way.
Using the same heiroglyphics as I posted last time, we can implement 'case entirely as a function:
; Hypothetically, this uses the macros 'def, 'whenlet, 'iflet, and
; 'do; the functions 'if, 'testify, 'get, and 'apply; the special
; forms 'fn, 'zap, and 'quote; and the read macros
; #,x for (fn (gs123) (zap gs123 x)), #'x for (fn () x), and
; 'x for (quote x).
(def #,case (subject . args)
(whenlet (first . rest) args
(iflet (then . rest) rest
; Check the testified result of (first) against the subject.
; Return the result of (then).
#'(apply case-part-2 subject rest))
; Return the result of (first). It's the last else.
; was (case x y (dosomething))
(case x #''y dosomething)
This is even an overall brevity boost, I think. What do you think of its clarity? I seriously might try this out in Penknife....
All the necessary assumptions are listed in the top comment though (assuming you can intuit my intentions for the 'iflet macro, etc.). It's by no means implemented. ^^
Also, I welcome any switch in the heiroglyphics that makes them more readable. In Penknife, where there are infix operators but no read macros, I'd probably represent #''y as "thunk:sym.y" or "sym.y^". In Arc, ^'y looks like a good choice. Maybe :y or %y could be the zapper (or some better-suited abstraction over setforms).