| I was trying to debug something in the setforms function in arc.arc as it is interpreted by the experimental branch of Arcueid and noticed something interesting, and possibly broken in Anarki. There is a snippet of code in setforms that goes (let argsyms (map [uniq] (cdr expr)))...)
Now, what is the arity of [uniq]? One might expect from the documentation that it is the equivalent of (fn (_) (uniq)), and so has an arity of 1. Does not seem to be so in Anarki any more: arc> ([uniq] 1)
Error: "#<procedure>: expects no arguments, given 1: 1"
Huh? So [uniq] is now a function with zero arguments? Does not seem to be true in Arc 3.1: arc> ([uniq] 1)
gs1722
How the hell does setforms work if bracket functions have so changed in their semantics in Anarki? Last I checked setforms still uses (map [uniq] ...) as it appears in Arc 3.1, so the change should have broken setforms completely. |