Re: [Scheme-reports] Appeal for review help with R7RS draft 4 Denis Washington (15 Oct 2011 07:14 UTC)
Re: [Scheme-reports] Appeal for review help with R7RS draft 4 Jeronimo Pellegrini (15 Oct 2011 12:06 UTC)
Re: Appeal for review help with R7RS draft 4 Arthur A. Gleckler (16 Oct 2011 04:46 UTC)
Re: Appeal for review help with R7RS draft 4 Arthur A. Gleckler (16 Oct 2011 21:08 UTC)
Re: Appeal for review help with R7RS draft 4 Arthur A. Gleckler (17 Oct 2011 06:27 UTC)
[Scheme-reports] Legacy caar to cddddr Jussi Piitulainen (16 Oct 2011 14:45 UTC)
Re: [Scheme-reports] Legacy caar to cddddr John Cowan (17 Oct 2011 06:41 UTC)
Re: [Scheme-reports] Legacy caar to cddddr Alex Shinn (17 Oct 2011 23:39 UTC)
Re: [Scheme-reports] Legacy caar to cddddr Jussi Piitulainen (20 Oct 2011 12:12 UTC)
Re: [Scheme-reports] Legacy caar to cddddr Ray Dillinger (25 Oct 2011 00:43 UTC)
Re: [Scheme-reports] Legacy caar to cddddr John Cowan (25 Oct 2011 02:17 UTC)
Re: [Scheme-reports] Legacy caar to cddddr Alex Shinn (20 Oct 2011 08:21 UTC)
Re: [Scheme-reports] Legacy caar to cddddr Ray Dillinger (20 Oct 2011 17:06 UTC)
Re: [Scheme-reports] Legacy caar to cddddr John Cowan (20 Oct 2011 17:46 UTC)
Re: Legacy caar to cddddr Arthur A. Gleckler (20 Oct 2011 17:50 UTC)
Re: [Scheme-reports] Legacy caar to cddddr Aubrey Jaffer (20 Oct 2011 20:18 UTC)
Re: [Scheme-reports] Legacy caar to cddddr John Cowan (20 Oct 2011 22:44 UTC)
Re: [Scheme-reports] Legacy caar to cddddr Alex Shinn (21 Oct 2011 02:48 UTC)
Re: [Scheme-reports] Legacy caar to cddddr Aubrey Jaffer (22 Oct 2011 00:04 UTC)
Re: [Scheme-reports] Legacy caar to cddddr Alex Shinn (23 Oct 2011 05:27 UTC)
Re: [Scheme-reports] Legacy caar to cddddr John Cowan (20 Oct 2011 17:52 UTC)
Re: [Scheme-reports] Legacy caar to cddddr Grant Rettke (21 Oct 2011 02:34 UTC)
Re: [Scheme-reports] Legacy caar to cddddr Alex Shinn (21 Oct 2011 02:51 UTC)
Re: [Scheme-reports] Legacy caar to cddddr John Cowan (21 Oct 2011 02:56 UTC)
Re: [Scheme-reports] Legacy caar to cddddr Grant Rettke (21 Oct 2011 20:16 UTC)
Re: [Scheme-reports] Legacy caar to cddddr Aubrey Jaffer (22 Oct 2011 00:14 UTC)
Re: [Scheme-reports] Legacy caar to cddddr Andre van Tonder (22 Oct 2011 14:47 UTC)
Re: [Scheme-reports] Legacy caar to cddddr John Cowan (22 Oct 2011 17:56 UTC)
Re: [Scheme-reports] Legacy caar to cddddr Andre van Tonder (22 Oct 2011 19:15 UTC)
Re: [Scheme-reports] Legacy caar to cddddr John Cowan (22 Oct 2011 20:31 UTC)
Re: [Scheme-reports] Legacy caar to cddddr Andre van Tonder (23 Oct 2011 08:11 UTC)
Re: [Scheme-reports] Legacy caar to cddddr John Cowan (23 Oct 2011 19:41 UTC)
Re: [Scheme-reports] Legacy caar to cddddr Denis Washington (22 Oct 2011 19:16 UTC)
Re: [Scheme-reports] Legacy caar to cddddr Aubrey Jaffer (24 Oct 2011 00:57 UTC)
Re: [Scheme-reports] Legacy caar to cddddr Alex Shinn (23 Oct 2011 05:39 UTC)
Re: [Scheme-reports] Legacy caar to cddddr Andre van Tonder (23 Oct 2011 08:04 UTC)
Re: [Scheme-reports] Legacy caar to cddddr Jussi Piitulainen (23 Oct 2011 11:44 UTC)
Re: [Scheme-reports] Legacy caar to cddddr Alex Shinn (23 Oct 2011 15:16 UTC)
Re: [Scheme-reports] Legacy caar to cddddr Andre van Tonder (23 Oct 2011 16:27 UTC)
Re: [Scheme-reports] Legacy caar to cddddr John Cowan (23 Oct 2011 18:14 UTC)

Re: [Scheme-reports] Legacy caar to cddddr Aubrey Jaffer 24 Oct 2011 00:56 UTC

 | Date: Sat, 22 Oct 2011 21:15:59 +0200
 | From: Denis Washington <denisw@online.de>
 |
 | ...
 | 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@scheme-reports.org
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports