Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search

[REBOL] Re: On mutability and sameness

From: joel:neely:fedex at: 19-Jun-2001 11:29

Hi, Mark, PMJI, but how about this explanation? [Robbo1Mark--aol--com] wrote:
> JEFF, > > I essence you are correct, but how easier can you more > properly explain these examples..... > > >> a: "123" == "123" > >> b: a == "123" > >> c: "123" == "123" > > 'a & 'b are the "SAME" string! and refer to the same memory > location. 'c has the same value on the surface but is a separate > instance of a string! value and is stored at a separate memory > location. > > That is why this.... > > >> insert b "abc" == "123" > >> b == "abc123" > >> a == "abc123" > >> c == "123" > > The value of 'A & 'B both change but 'C remains unaltered. >
Excited by the brilliant future of REBOL, my wife and I move to Ukiah. We open a joint account with our travel expense check of $1,000. Similarly motivated, my unmarried son moves to Ukiah as well, and opens an account with his travel expense check, also $1,000. At this point my son, my wife, and I would all reply to "What's your balance?" by saying $1,000. Our balances are equal. My son moves into an apartment, but my wife and I move into a house with a yard. Therefore I drive to the store and by a garden hose and sprinkler for $20, paying by check. Now if you ask either me or my wife "What's your balance?" we'll have to answer $980, while my son will answer the same question by saying $1,000. The difference is this: initially we had EQUAL? accounts, but my wife and I have the SAME? account. Therefore, either of us can write a check that affects our shared balance, but none of those checks affects our son's balance, because his account is not the SAME? as ours, even though it was originally EQUAL? to ours.
> You can show this in 'C ( or some other language ) by use of > pointers and references as Joel did. >
You *can* show it using C (although I wish I hadn't ;-), but it's not *necessary* to do so. -jn- ___ ___ ___ \/ 2 + \/ 2 = 4 (for sufficiently large approximations of \/ 2 ) joel'dot'neely'at'fedex'dot'com