-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Sat, Jan 14, 2017 at 03:16:10PM -0600, Christopher Allan Webber wrote: > [email protected] writes: > > > Curiously, Jan (also in this thread) came up with "clone", > > independently. > > Yes you're right. :) > > Speaking of Jan and I both thinking about clone'ish things [...]
> Here's what it looks like in practice, adapting from the > (srfi srfi-9 gnu) code: > > (define fsf-address > (make <address> > #:street "Franklin Street" > #:city "Boston" > #:country "USA")) > > (define rms > (make <person> > #:age 30 > #:email "[email protected]" > #:address fsf-address)) > > (define new-rms > (clone rms > ((.age) 60) > ((.address .street) "Temple Place"))) > > scheme@(guile-user)> (.age rms) > $12 = 30 > scheme@(guile-user)> (.age new-rms) > $13 = 60 > scheme@(guile-user)> (.street (.address rms)) > $14 = "Franklin Street" > scheme@(guile-user)> (.street (.address new-rms)) > $15 = "Temple Place" > > ... not bad, eh? You folks rock, seriously :-) > Updated copy of goops-functional-setter.scm attached! What do other > people think? Should I try to get this upstream in Guile? I'd love that kind of interface. Feels pretty natural. regards - -- t -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iEYEARECAAYFAlh7QV8ACgkQBcgs9XrR2kbd5wCfVghdRDiJG5/AfrQ0kWkkNBzC aZIAn3SFxYRIe4C5pG5LpEzsG2dunJgf =i7FL -----END PGP SIGNATURE-----
