From: Tim P. <ti...@po...> - 2004-09-15 21:15:40
|
Hi, --- a: [1,2,3] parses as {"a"=3D>[123]} in the ruby parser.=20 I'm not suggesting that something should be done, just raising it as a possible 'real world' problem. Tim |
From: why t. l. s. <yam...@wh...> - 2004-09-15 22:56:26
|
Tim Parkin wrote: >--- >a: [1,2,3] > >parses as {"a"=>[123]} in the ruby parser. > > Check that out. I follow the productions so well, don't I? _why |
From: Clark C. E. <cc...@cl...> - 2004-09-16 00:12:52
|
On Wed, Sep 15, 2004 at 04:56:16PM -0600, why the lucky stiff wrote: | >--- | >a: [1,2,3] | > | >parses as {"a"=>[123]} in the ruby parser. | | | Check that out. I follow the productions so well, don't I? Yes, you do. It's exactly the specified behavior. I asked Tim to post it beacuse it demonstrates what happens when we get a bit too clever. There are a few cases where a few select 'indicators' can be used if not followed by a space, '-', '?' ':' and ',' to allow things like -23 ?what-you-say and 34,343.00 I concede the exception for '-', but do we need the others? Clark |
From: Tim P. <ti...@po...> - 2004-09-16 08:08:31
|
On Wed, 2004-09-15 at 23:56, why the lucky stiff wrote: > Tim Parkin wrote: >=20 > >--- > >a: [1,2,3] > > > >parses as {"a"=3D>[123]} in the ruby parser.=20 > > =20 > > > Check that out. I follow the productions so well, don't I? Sorry why.. I wasn't being critical of your parser.. In fact I'm using your parser as the 'defacto' standard so in this case where I've said "the ruby parser" I really meant "the current specification". I realise that the spec says this is right and didn't mean to suggest what the parser was doing was wrong. sorry again Tim |
From: why t. l. s. <yam...@wh...> - 2004-09-16 15:33:30
|
Tim Parkin wrote: >Sorry why.. I wasn't being critical of your parser.. In fact I'm using >your parser as the 'defacto' standard so in this case where I've said >"the ruby parser" I really meant "the current specification". I realise >that the spec says this is right and didn't mean to suggest what the >parser was doing was wrong. sorry again > > Oh, gots ya. It sounded like a bug report for some reason. Yeah, good catch. It's definitely confusing. _why |
From: David H. <dav...@bl...> - 2004-09-16 01:11:49
|
Clark C. Evans wrote: > On Wed, Sep 15, 2004 at 04:56:16PM -0600, why the lucky stiff wrote: > | >--- > | >a: [1,2,3] > | > > | >parses as {"a"=>[123]} in the ruby parser. > | > | Check that out. I follow the productions so well, don't I? > > Yes, you do. It's exactly the specified behavior. I asked Tim to > post it beacuse it demonstrates what happens when we get a bit too > clever. There are a few cases where a few select 'indicators' can be > used if not followed by a space, '-', '?' ':' and ',' to allow > things like -23 ?what-you-say and 34,343.00 > > I concede the exception for '-', but do we need the others? [1,2,3] => [123] certainly violates the Principle of Least Astonishment. Personally I don't think that commas in numbers are useful or improve readability. This usage is also likely to be non-obvious for users whose native languages write ',' for a decimal point. -- David Hopwood <dav...@bl...> |
From: Clark C. E. <cc...@cl...> - 2004-09-16 13:21:29
|
On Thu, Sep 16, 2004 at 02:11:45AM +0100, David Hopwood wrote: | Clark C. Evans wrote: | >On Wed, Sep 15, 2004 at 04:56:16PM -0600, why the lucky stiff wrote: | >| >--- | >| >a: [1,2,3] | >| > | >| >parses as {"a"=>[123]} in the ruby parser. | >| | >| Check that out. I follow the productions so well, don't I? | > | >Yes, you do. It's exactly the specified behavior. | | [1,2,3] => [123] certainly violates the Principle of Least Astonishment. | Personally I don't think that commas in numbers are useful or improve | readability. This usage is also likely to be non-obvious for users whose | native languages write ',' for a decimal point. Perhaps I'm overreacting; could the problem be fixed by fixing the integer REGEX to not contain "," character. In this case, the value returned as a string "1,2,3" which is less astonishing. Best, Clark |
From: Oren Ben-K. <or...@be...> - 2004-09-16 16:47:47
|
On Thursday 16 September 2004 16:21, Clark C. Evans wrote: > | [1,2,3] => [123] certainly violates the Principle of Least > | Astonishment. Personally I don't think that commas in numbers are > | useful or improve readability. This usage is also likely to be > | non-obvious for users whose native languages write ',' for a > | decimal point. > > Perhaps I'm overreacting; could the problem be fixed by fixing the > integer REGEX to not contain "," character. In this case, the value > returned as a string "1,2,3" which is less astonishing. Sure. We could ban ',' in integers, and make ',' be disallowed in plain scalars in-flow. I have no problem with that. I would suggest that we allow '_' to be used in integers though (1_000_000_000). I think Perl allows that. Have fun, Oren Ben-Kiki |
From: trans. (T. Onoma) <tra...@ru...> - 2004-09-16 17:04:24
|
On Thursday 16 September 2004 11:29 am, Oren Ben-Kiki wrote: > On Thursday 16 September 2004 16:21, Clark C. Evans wrote: > > | [1,2,3] =3D> [123] certainly violates the Principle of Least > > | Astonishment. Personally I don't think that commas in numbers are > > | useful or improve readability. This usage is also likely to be > > | non-obvious for users whose native languages write ',' for a > > | decimal point. > > > > Perhaps I'm overreacting; could the problem be fixed by fixing the > > integer REGEX to not contain "," character. In this case, the value > > returned as a string "1,2,3" which is less astonishing. > > Sure. We could ban ',' in integers, and make ',' be disallowed in plain > scalars in-flow. I have no problem with that. I would suggest that we > allow '_' to be used in integers though (1_000_000_000). I think Perl > allows that. Rather use semicolons to divide array elements instead. e.g. [1;2;3] T. =2D-=20 ( o _ =E3=82=AB=E3=83=A9=E3=83=81 // trans. / \ tra...@ru... I don't give a damn for a man that can only spell a word one way. =2DMark Twain |
From: trans. (T. Onoma) <tra...@ru...> - 2004-09-16 18:14:46
|
On Thursday 16 September 2004 01:25 pm, you wrote: > On Thursday 16 September 2004 20:04, trans. (T. Onoma) wrote: > > > Sure. We could ban ',' in integers, and make ',' be disallowed in > > > plain scalars in-flow. I have no problem with that. I would suggest > > > that we allow '_' to be used in integers though (1_000_000_000). I > > > think Perl allows that. > > > > Rather use semicolons to divide array elements instead. e.g. [1;2;3] > > - People will still read [1,2,3] as a list. > - A huge compatibility issue. > > People don't use ',' in integers much, especially not in "data" files. > People might not think of using _ in integers without being told first, > but I doubt anyone will have a problem reading an integer with _ in it. I would assume it's a string, since in all my life I have never seen an=20 integer written that way --well, until today ;) T. =2D-=20 ( o _ =E3=82=AB=E3=83=A9=E3=83=81 // trans. / \ tra...@ru... I don't give a damn for a man that can only spell a word one way. =2DMark Twain |
From: David H. <dav...@bl...> - 2004-09-16 23:22:13
|
Oren Ben-Kiki wrote: > On Thursday 16 September 2004 16:21, Clark C. Evans wrote: > >>| [1,2,3] => [123] certainly violates the Principle of Least >>| Astonishment. Personally I don't think that commas in numbers are >>| useful or improve readability. This usage is also likely to be >>| non-obvious for users whose native languages write ',' for a >>| decimal point. >> >>Perhaps I'm overreacting; could the problem be fixed by fixing the >>integer REGEX to not contain "," character. In this case, the value >>returned as a string "1,2,3" which is less astonishing. > > Sure. We could ban ',' in integers, and make ',' be disallowed in plain > scalars in-flow. I have no problem with that. I would suggest that we > allow '_' to be used in integers though (1_000_000_000). I think Perl > allows that. +1. This is much less surprising. T. Onoma wrote: > Rather use semicolons to divide array elements instead. e.g. [1;2;3] -1. If we're going to be try to be consistent with (some) programming languages (e.g. by treating quoted values as strings), then ',' as a list separator and '_' for readability is more consistent. -- David Hopwood <dav...@bl...> |
From: Tim H. <tim...@co...> - 2004-09-16 17:31:29
|
On Thursday 16 September 2004 11:29 am, Oren Ben-Kiki wrote: >On Thursday 16 September 2004 16:21, Clark C. Evans wrote: > > >>| [1,2,3] => [123] certainly violates the Principle of Least >>| Astonishment. Personally I don't think that commas in numbers are >>| useful or improve readability. This usage is also likely to be >>| non-obvious for users whose native languages write ',' for a >>| decimal point. >> >>Perhaps I'm overreacting; could the problem be fixed by fixing the >>integer REGEX to not contain "," character. In this case, the value >>returned as a string "1,2,3" which is less astonishing. >> >> >Sure. We could ban ',' in integers, and make ',' be disallowed in plain >scalars in-flow. I have no problem with that. I would suggest that we >allow '_' to be used in integers though (1_000_000_000). I think Perl >allows that. > > Could the rules for integers be tightened up so that it only groupings of three numbers can be set off that way. If it's not horrible, this would probably be good whether commas are kept or underscores are used. 1,000,000 # I'm an integer if commas are kept 1,2,3 # I am not 1_000_000 # I'm an integer is underscores replace commas 1_2_3 # I am not Or commas could just get tossed with no replacement. That would suit me fine. -tim |
From: David H. <dav...@bl...> - 2004-09-16 23:24:13
|
Tim Hochberg wrote: > On Thursday 16 September 2004 11:29 am, Oren Ben-Kiki wrote: >> On Thursday 16 September 2004 16:21, Clark C. Evans wrote: >> >>> | [1,2,3] => [123] certainly violates the Principle of Least >>> | Astonishment. Personally I don't think that commas in numbers are >>> | useful or improve readability. This usage is also likely to be >>> | non-obvious for users whose native languages write ',' for a >>> | decimal point. >>> >>> Perhaps I'm overreacting; could the problem be fixed by fixing the >>> integer REGEX to not contain "," character. In this case, the value >>> returned as a string "1,2,3" which is less astonishing. >> >> Sure. We could ban ',' in integers, and make ',' be disallowed in plain >> scalars in-flow. I have no problem with that. I would suggest that we >> allow '_' to be used in integers though (1_000_000_000). I think Perl >> allows that. > > Could the rules for integers be tightened up so that it only groupings > of three numbers can be set off that way. For hex numbers you might want groups of 2, 4, 8, etc. hex digits. So it's simpler to allow any grouping regardless of base. -- David Hopwood <dav...@bl...> |
From: Damian C. <dam...@gm...> - 2004-09-17 12:50:19
|
On Thu, 16 Sep 2004 10:31:12 -0700, Tim Hochberg <tim...@co...> wro= te: > Could the rules for integers be tightened up so that it only groupings > of three numbers can be set off that way.=20 Except I'm afraid there are cultures where digits are not grouped in threes. The one I know of is India, which has crore (10**7) and lakh (10**5), and would presumably write 2**24 as 1,67,77,216. The rule that commas followed by spaces are commas and without spaces are part of numbers is fairly universal in print and in typing: 'Payouts for the last quarters were 150,000, 200,000, 225,000, and 210,000 simoleons'. I assume the same applies to numbers in french, where the comma is the decimal point. Maybe this will teach young folk to remember to type the space following the comma. :-) Representing numbers in ASCII seems always to be not quite right. We programmers already impose the eccentric 'e' notation on end-users, because showing powers of ten is difficult. What's more, in non-American English-speaking countries, the decimal point is supposed to be a raised dot (U+00B7, as in 3=B714159); this character not appearing in ASCII, we have become so used to the American convention that my younger colleagues are genuinely ignorant of this fact. In scientific use we're supposed to use thin-spaces between groups of digits. TeX uses \, for this, if I remember correctly: 16\,777\,216. (I am not suggesting that poor old YAML be expected to handle this format!) In typewritten text one theoretically uses normal spaces, but this tends to look odd, though: 16 777 216 will also be liable to be broken across lines, which we do not want. Erm.. the point of this aside is that numbers will be being munged somewhat to fit in to YAML, no matter how clever our regexes are. I'd be tempted to outlaw digit-grouping commas myself. The Perl notation (using underscores: 16_777_216) is actually quite sensible (and tidily avoids arguments about commas versus dots as grouping character). It would look better if people designed their fonts so that underscores are short. > Or commas could just get tossed with no replacement. That would suit me > fine. Same here.=20 I think the regexes used so far are fine. As always you can be tripped up by edge cases, but once bitten you know how to avoid a repetition -- in this instance, by remembering the space after a punctuation comma. -- Damian --=20 Damian Cugley, Alleged Literature http://www.alleged.org.uk/pdc/ |
From: trans. (T. Onoma) <tra...@ru...> - 2004-09-17 13:29:21
|
On Friday 17 September 2004 08:50 am, Damian Cugley wrote: > Maybe this will teach young folk > to remember to type the space following the comma. :-) Hell, I put one before and after! [ 1 , 2 , 3 ] =2D-=20 ( o _ =E3=82=AB=E3=83=A9=E3=83=81 // trans. / \ tra...@ru... I don't give a damn for a man that can only spell a word one way. =2DMark Twain |