Kon Lovett scripsit: > Anybody want to way in on the proposed immutability of pairs? FWIW, I > am ambivalent. My gut says NO but my heart says yes. This is the most > serious suggested change, IMHO. It doesn't just "break some existing > programs", it breaks with 50 years of lisp tradition. > > In Chicken 'set-c*r' is a common operator. Should pairs be immutable > something must replace them. I don't buy the suggestion of records or > vectors as a replacement, too heavy.
I'd like to see the existing pairs left alone, and new immutable pairs without identity added. That is, (immutable-cons 1 2) is permitted (but not required) to return the same pair (in the sense of EQ?) every time it's called. All existing procedures would continue to work with immutable pairs except, of course, SET-CAR! and SET-CDR!. Some decision would have to be taken about procedures like APPEND that accept multiple arguments: my initial take is that they should produce immutable results unless all the arguments are mutable. Scheme would need new procedures MUTABLE-PAIR?, IMMUTABLE-PAIR?, IMMUTABLE-CONS, IMMUTABLE-LIST, MUTABLE->IMMUTABLE, and IMMUTABLE->MUTABLE. -- John Cowan [EMAIL PROTECTED] http://ccil.org/~cowan Original line from The Warrior's Apprentice by Lois McMaster Bujold: "Only on Barrayar would pulling a loaded needler start a stampede toward one." English-to-Russian-to-English mangling thereof: "Only on Barrayar you risk to lose support instead of finding it when you threat with the charged weapon." _______________________________________________ Chicken-users mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/chicken-users
