Comment by a-french-anon

12 days ago

Ref counting is garbage collection (cf https://courses.cs.washington.edu/courses/cse590p/05au/p50-b...). It's just not tracing garbage collection.

I'm a decent fan of both Tcl and CL, but Tcl has the big problem of being "almost" homoiconic and lacking good meta-programming tools like quasi-quoting. I say almost because comments break homoiconicity, whereas in CL they are discarded at read-time, never appearing in the parsed tree.

Quasiquoting is only necessary in Lisp because Lisp evaluates its arguments by default. Tcl does not do that.

  • Quasiquoting allows us to specify a mostly fixed template of code where we would like to indicate variable parts that are to be substituted (note: not evaluated).

    The stuff here sure looks like quasiquoting to me:

    https://wiki.tcl-lang.org/page/Macro+Facility+for+Tcl

      mac  mloop {idx cnt cmd} {
         return "for {set $idx 0} {\$[set $idx] < $cnt} {incr $idx} {$cmd}"
      }
    

    The "..." with embedded $... reference is is a kind of quasiquote.