dmd 1.057 and 2.041 release
Fawzi Mohamed
fawzi at gmx.ch
Tue Mar 9 04:44:30 PST 2010
On 9-mar-10, at 13:00, Steven Schveighoffer wrote:
> On Tue, 09 Mar 2010 03:09:51 -0500, Alexander Suhoverhov <alexander at suhoverhov.selfip.net
> > wrote:
>
>>
>>
>> Steven Schveighoffer at "Mon, 08 Mar 2010 15:23:51 -0500" wrote:
>> SS> On Mon, 08 Mar 2010 15:12:24 -0500, bearophile <bearophileHUGS at lycos.com
>> > wrote:
>> >> Steven Schveighoffer:
>> >>> Tell me how you would parse the following text serialization
>> string for a
>> >>> string[]:
>> >>>
>> >>> hello world how are you
>> >>>
>> >>> What if it was a string[][]?
>> >>>
>> >>> Compare that to:
>> >>>
>> >>> [hello world, [how are, you]]
>> >>
>> >> You are missing something:
>> >>
>> >> ["hello world", ["how are", "you"]]
>> SS> For completely unambiguous, yes. But still, I find often that
>> quotes are more noise than
>> SS> they are worth when just doing simple printouts. What we want
>> is the most useful
>> SS> default.
>>
>> Commas are even more noise than than quotes. erlang:
>>
>> [{app, "app1"}, {user, "user1"}, {score, 123456}, {date, 5000000},
>> {misc, "foo"}]
>>
>> But if you just drop commas:
>>
>> [{app "app1"} {user "user1"} {score 123456} {date 5000000} {misc
>> "foo"}]
>
> If you are used to writing code, you should be used to having
> commas. The two major use cases for 'to!string' are debugging and
> maybe serialization, both programmer tasks. Plus, in your examples,
> you have quotes for strings. That negates the need for commas, but
> I don't know if having 'to' convert strings to having quotes only
> for arrays makes sense. Outputting an array should be a recursive
> thing. At the very least, we need either a non-whitespace separator
> or quotes to delineate strings. Brackets are a must to see the
> separation for multi-dimensional arrays.
>
> -Steve
I don't know, I have something similar
writeOut(sink,type,formatting...), which is more flexible and
efficient, not just to string.
That is supposed to write out something for the user (no
serialization), and well it does not put "", but it does put "," in
arrays, but I can understand other choices (matlab for example has no
commas).
For dictionaries ":" and "," is nice I think.
It really come down to the meaning of to!(x), if it should be without
loss then one should have enough information to recover the original
value.
That is possible also without commas, but C/D programmers are used to
them... lisp, or other functional languages programmers might feel
more at home with spaces... both are possible.
I find it slightly funny that D would choose spaces, but in the end
any convention works
Fawzi
More information about the Digitalmars-d-announce
mailing list