Arc Forumnew | comments | leaders | submitlogin
2 points by CatDancer 5629 days ago | link | parent

It's because (fn args ...) currently compiles to (lambda args ...), so args becomes a Scheme list instead of an Arc list.

It's hard to see the difference because the Arc runtime mostly treats '() as a synonym for 'nil. But keys to tables aren't converted, so it is possible to get an observable result out of the bug this way:

  arc> (let a (table)
         (= (a ((fn args args) 1 2)) 'hi)
         (a '(1 2)))

  nil