[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Scheme-reports] Legacy caar to cddddr
| Date: Sat, 22 Oct 2011 21:15:59 +0200
| From: Denis Washington <denisw@x>
|
| ...
| Also, a destructuring let form would be a much better solution.
| For instance, in Clojure you can write something like:
|
| (let [[_ specs end & body] exp]
| ...)
|
| We could have something similar in WG2:
|
| (let (((_ specs end . body) exp))
| ...)
|
| Even better, we could also have an "if-let" form whose execution
| path depends on whether the destructuring is possible:
|
| (if-let (((_ specs end . body) exp))
| ...
| (syntax-error))
How does destructuring work with mutation? Does assigning to a bound
variable alter the matched structure?
Writing calls to SET-CAR! and SET-CDR! would require binding the pair
containing the pointer to be changed. That would destroy the
obviousness of destructuring, but is easy to deal with using C*R: just
remove the first character after the "C" (CR is the identity
function).
| Such destructuring forms would remove most reasons for having cadr
| etc. in the standard.
I disagree.
_______________________________________________
Scheme-reports mailing list
Scheme-reports@x
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports