| Is there a reason that Arc's defset is more complex than CL's defun (setf ...)? It seems like Arc's philosophy of shorter programs would benefit from simpler setter definitions. Here is an example: CL: (defun (setf pval) (val puz x y)
(setf (aref puz x y) val))
Arc: (defset pval (puz x y)
(w/uniq (gpuz gx gy)
(list (list gx x
gy y
gpuz puz)
`(pval ,gpuz ,gx ,gy)
`(fn (val) (= ((,gpuz ,gy) ,gx) val)))))
Unless I'm missing something, there is no good reason it should be this complex. |