[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#6891: `string-to-number' doesn't recognize `#'' read syntax
From: |
MON KEY |
Subject: |
bug#6891: `string-to-number' doesn't recognize `#'' read syntax |
Date: |
Fri, 20 Aug 2010 20:01:06 -0400 |
`string-to-number' takes an optional arg BASE but doesn't recognize lisp `#'
read syntax for binary, octal, hex, and radix, e.g. `#o', `#b', `#x', and
`#<RADIX>r'. It should, these _are_ the respective read syntax for BASE.
For good measure it should also recognize the string output from
`format's `#' flag for octal and hex e.g `0x' for hex and `0' for octal.
The proposed behaviour should not pose a lisp dialect compatiblility problem as
Emacs lisp does not attempt to follow the Common Lisp spec, does not maintain a
duplicate for CL's `parse-integer' procedure and does not take a bounding START
END arg, but _does_ parse floats so it shouldn't be restricted by that specs
constraints w/re the `#' radix read syntax e.g:
,----
| `parse-integer' does not recognize the syntactic radix-specifier
| prefixes `#O', `#B', `#X', and `#nR', nor does it recognize a trailing
| decimal point.
`----
Besides, `string-to-number' already has a BASE argument, the C code already
strips whitespace, discards "junk", and exhibits a willingness to interpolate
sign in sometimes odd ways, so a little more DWIM can't hurt.
Current `string-to-number' DWIMness:
string-to-number " -3777777777" 8) ;=> 536870911
(string-to-number " -3777777777.007" 8) ;=> 536870911
(string-to-number " -3777777777mmm#" 8) ;=> 536870911
(string-to-number "+ -3777777777mmm#" 8) ;=> 0
Following illustrates the additioanl DWIMing desired:
#o
(string-to-number "#o3777777777" 8) ;=> 536870911
#b
(string-to-number "#b11111111111111111111111111111" 2) ;=> 536870911
#x
(string-to-number "#x1fffffff" 16) ;=> 536870911
#<RDX>r
(string-to-number "#12r12B969227" 12) ;=> 536870911
0x
(string-to-number "0x1fffffff" 16) ;=> 536870911
0
(string-to-number "03777777777" 8) ;=> 536870911
--
/s_P\
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bug#6891: `string-to-number' doesn't recognize `#'' read syntax,
MON KEY <=