Hacker News new | ask | show | jobs
by aidenn0 2498 days ago
Won't tagbody/go with an array of symbols work for jump tables (assuming GO is O(1)?):

    (tagbody
      (go (aref #(a b c d) N))
      a
      ...
      b
      ...
      c
      ...
      d))
1 comments

Alas, no; 'go' is a special form — its argument is unevaluated.
Indeed it appears so. Strangely enough, the hyperspec doesn't specify that it's not evaluated.
For special forms I think it’s implied that the arguments aren’t evaluated (as they are special) unless stated otherwise.
At least some forms say explicitly evaluated or not.