Arc Forumnew | comments | leaders | submitlogin
3 points by rntz 5007 days ago | link | parent

Nitpicking: that's not ssexpansion. Ssexpansion is short for symbol-syntax expansion, in which the occurrence of special characters in symbols tells the arc compiler to transform them, things like foo.bar -> (foo bar), foo!bar -> (foo 'bar). The brace transformation is actually accomplished via changing the reader table of the underlying scheme, and so is translated at read-time rather than compile-time.

This is important if, eg, you're writing scheme code to integrate into the arc runtime in some fashion; normally, in plt scheme, braces [] and parentheses () are interchangeable; but arc changes the way [] is parsed, so you basically have to avoid using them in scheme code. Whereas ssyntax is parsed by the arc compiler, not the reader, so you don't need to worry about it.



1 point by evanrmurphy 5007 days ago | link

Ah, you're right! I had thought it was ssexpansion because of

  arc> (ssexpand '[_])
  (fn (_) (_))
but it turns out to expand even without ssexpand:

  arc> '[_]
  (fn (_) (_))
Thanks for the clarification. ^_^

-----