[Rd] Where does L come from?
Hervé Pagès
hp@ge@ @ending from fredhutch@org
Sat Aug 25 22:49:30 CEST 2018
The choice of the L suffix in R to mean "R integer type", which
is mapped to the "int" type at the C level, and NOT to the "long int"
type, is really unfortunate as it seems to be misleading and confusing
a lot of people.
The fact that nowadays "int" and "long int" have the same size on most
platforms is only anecdotal here.
Just my 2 cents.
H.
On 08/25/2018 10:01 AM, Dirk Eddelbuettel wrote:
>
> On 25 August 2018 at 09:28, Carl Boettiger wrote:
> | I always thought it meant "Long" (I'm assuming R's integers are long
> | integers in C sense (iirrc one can declare 'long x', and it being common to
> | refer to integers as "longs" in the same way we use "doubles" to mean
> | double precision floating point). But pure speculation on my part, so I'm
> | curious!
>
> It does per my copy (dated 1990 !!) of the 2nd ed of Kernighan & Ritchie. It
> explicitly mentions (sec 2.2) that 'int' may be 16 or 32 bits, and 'long' is
> 32 bit; and (in sec 2.3) introduces the I, U, and L labels for constants. So
> "back then when" 32 bit was indeed long. And as R uses 32 bit integers ...
>
> (It is all murky because the size is an implementation detail and later
> "essentially everybody" moved to 32 bit integers and 64 bit longs as the 64
> bit architectures became prevalent. Which is why when it matters one should
> really use more explicit types like int32_t or int64_t.)
>
> Dirk
>
--
Hervé Pagès
Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024
E-mail: hpages using fredhutch.org
Phone: (206) 667-5791
Fax: (206) 667-1319
More information about the R-devel
mailing list