Hacker News new | ask | show | jobs
by kazinator 3945 days ago
> You'd basically need to build up an entirely different language for manipulating symbols to even make any sense of it.

No problem:

  struct symbol {
    obj_base_fields; // macro
    obj name_string;
    obj package;
    // ...
  };

  struct cons {
    obj_base_fields; // macro
    obj car, cdr;
  };
1 comments

Tbh, I find lisp to be a pretty annoying language for talking about this stuff. It seems to aim just slightly below the right level of abstraction by talking about symbols where you really want to have abstract binding trees.

I'd like to see a lisp where ABTs were given a more prominent frontline treatment. That'd complete the "locality" story that often gives people pause when implementing macros.