Hi --
Hi David,
First, Thank you for The Well-Grounded Rubyist. I study like other
pour over scriptures or the Koran. Your topics are well chose,
beautifully explicated. And Manning adding typesetting that enhanced
the your work.
Thanks!
I started this thread because some of your comments on page 54, e.g.
"The un-reference ..." were a blemish among your excellent analyses.
Oh dear -- the whole thread is my fault?
The fact that Robert Klemme, whom I also respect highly as a Rubyist,
agrees with you gives me pause.
But nevertheless, I maintain that my corrected post of today refutes
such claims as "... any object that's represented as an immediate
value is always the same object."
I'm afraid I don't see the refutation, but as per my previous post,
the immediate value thing is only part of the picture.
Russel & Whitehead dealt with this
kind of issue perhaps a century ago when the defined the first Natural
Number, 1, as "the set of all sets that are in one-to-one
correspondence with the set containing the Null Set." Plato dealt with
this in The Parable of the Caves" with the claim that allegedly
concrete things were merely reflections of the "real" objects.
Well... any given system of symbolic representation may or may not
take a Platonic view of things. Plato's allegory is of course of great
importance in the history of thought, but it doesn't really dictate
that 2000+ years later, there can't be a computer language with
identifiers housing immediate values
I'm not clamoring for a Ruby implementation. I only posted my
analysis on this issue to get other people's opinions. And I find it
hard compose a mistake free exposition, e.g. the last code lines in
yesterday evening's post:
a = 2**30-1; show (a) => Got 1073741823; class = Fixnum; object_id
= 2147483647; v >> 1 = 1073741823
a = 2**30; show (a) => Got 1073741824; class = Bignum; object_id =
22737670; v >> 1 = 11368835
should have read:
a = 2**30-1; show (a) => Got 1073741823; class = Fixnum; object_id
= 2147483647; v >> 1 = 1073741823
show(a.pp) => Got 1073741824; class = Bignum; object_id =
22738520; v >> 1 = 11369260 # Of course, "v >> 1" is irrelevant
here
to make the point that "pp" crossed the Fixnum/Bignum boundary
smoothly.
You'll see a lot of people cutting-and-pasting entire shell sessions,
like this:
$ cat myfile.rb
... code here ...
$ ruby myfile.rb
... output here ...
which is a good way to ensure that your output is from your input. I
rely a lot (depending on the example) on pasting things in and out of
irb.
Bottom line: Please keep up you great work! I appreciate it very
much!
I'll do me best
David
--
The Ruby training with D. Black, G. Brown, J.McAnally
Compleat Jan 22-23, 2010, Tampa, FL
Rubyist
http://www.thecompleatrubyist.com
David A. Black/Ruby Power and Light, LLC (
http://www.rubypal.com)