Arc Forumnew | comments | leaders | submitlogin
3 points by kens1 5902 days ago | link | parent

Good explanation. As an aside, the four syntax characters "~ : ! ." are the "special syntax". You can see the effects of these with ssexpand. Also, ~ and : can be combined, and ! and . can be combined, but not the other combinations (e.g. ~ and !).

  arc> (ssexpand '~a:b:~c)
  (compose (complement a) b (complement c))
  arc> (ssexpand 'd.e!f)
  (d e (quote f))
I just noticed that (car (ssexpand '.a)) returns the Scheme eof object. This doesn't seem like a good thing.


4 points by absz 5902 days ago | link

Good point. To be precise (as you noted), () [] ' , and ,@ are taken care of by mzscheme's read, but ~ : . and ! are handled afterwards in ssexpand (or its equivalent in ac.scm).

There are other bugs like those--pretty much any special syntax character on its own or in an incomplete way becomes an EOF.

-----