perhaps I've missed something ... John Clements (20 Jan 2000 22:21 UTC)
Re: perhaps I've missed something ... Lars Thomas Hansen (20 Jan 2000 22:38 UTC)
Re: perhaps I've missed something ... Shriram Krishnamurthi (20 Jan 2000 22:52 UTC)
Re: perhaps I've missed something ... Lars Thomas Hansen (20 Jan 2000 23:02 UTC)
Re: perhaps I've missed something ... John Clements (20 Jan 2000 22:58 UTC)
Re: perhaps I've missed something ... Lars Thomas Hansen (20 Jan 2000 23:05 UTC)
Re: perhaps I've missed something ... John Clements (20 Jan 2000 23:12 UTC)
Re: perhaps I've missed something ... sperber@xxxxxx (21 Jan 2000 07:38 UTC)
Re: perhaps I've missed something ... Lars Thomas Hansen (20 Jan 2000 22:44 UTC)
Re: perhaps I've missed something ... John Clements (20 Jan 2000 23:09 UTC)
Re: perhaps I've missed something ... Per Bothner (20 Jan 2000 23:01 UTC)
Re: perhaps I've missed something ... Matthias Felleisen (20 Jan 2000 23:18 UTC)
Re: perhaps I've missed something ... Per Bothner (20 Jan 2000 23:55 UTC)
Re: perhaps I've missed something ... Matthias Felleisen (21 Jan 2000 01:04 UTC)
Re: perhaps I've missed something ... Per Bothner (21 Jan 2000 01:49 UTC)
Re: perhaps I've missed something ... Matthias Felleisen (21 Jan 2000 02:40 UTC)
Re: perhaps I've missed something ... thi (21 Jan 2000 09:58 UTC)
Re: perhaps I've missed something ... Per Bothner (21 Jan 2000 18:36 UTC)
Re: perhaps I've missed something ... sperber@xxxxxx (22 Jan 2000 10:32 UTC)
Re: perhaps I've missed something ... Per Bothner (23 Jan 2000 20:02 UTC)
Re: perhaps I've missed something ... Shriram Krishnamurthi (23 Jan 2000 20:50 UTC)
Re: perhaps I've missed something ... Per Bothner (23 Jan 2000 21:25 UTC)
Re: perhaps I've missed something ... sperber@xxxxxx (24 Jan 2000 07:30 UTC)
Re: perhaps I've missed something ... Michael Livshin (24 Jan 2000 16:55 UTC)
Re: perhaps I've missed something ... sperber@xxxxxx (25 Jan 2000 07:43 UTC)
Re: perhaps I've missed something ... Michael Livshin (25 Jan 2000 11:02 UTC)
Re: perhaps I've missed something ... sperber@xxxxxx (25 Jan 2000 11:31 UTC)
Re: perhaps I've missed something ... Matthias Felleisen (25 Jan 2000 13:47 UTC)
Re: perhaps I've missed something ... sperber@xxxxxx (24 Jan 2000 07:29 UTC)
Re: perhaps I've missed something ... John Clements (20 Jan 2000 23:59 UTC)
Re: perhaps I've missed something ... Per Bothner (21 Jan 2000 00:18 UTC)
Re: perhaps I've missed something ... Shriram Krishnamurthi (21 Jan 2000 00:03 UTC)
Re: perhaps I've missed something ... Per Bothner (21 Jan 2000 00:37 UTC)
Re: perhaps I've missed something ... Shriram Krishnamurthi (21 Jan 2000 08:39 UTC)

Re: perhaps I've missed something ... Lars Thomas Hansen 20 Jan 2000 22:37 UTC


>... but I fail to see the appeal of this mechanism. As far as I can
>tell, a scheme implementation which conforms to this SRFI allows me
>to write
>
>(set! (car x) 5)
>
>rather than
>
>(set-car! x 5)

It's useful for syntactic (rather than procedural) abstraction.  It
allows you to write macros like this:

  ;; inc! increments whatever is stored in the "location" that
  ;; is its argument.

  (define-syntax inc!
    (syntax-rules ()
      ((inc! ?loc)
       (set! ?loc (+ ?loc 1)))))

Without SRFI-17, you can at most pass a variable as a location:

  (inc! x)  => (set! x (+ x 1))

but with SRFI-17 you can do better:

  (inc! (car x)) => (set! (car x) (+ (car x) 1))
  (inc! (vector-ref v i)) => (set! (vector-ref v i) (+ (vector-ref v i) 1))

--lars