
The reason it's particularly unintuitive for lists is that we almost never
explicitly construct lists using : and []. Sections like (+ 1) or (++
"Foo") reflect expressions like x + 1 and str ++ "Foo", but you simply
never see x : [] in the wild. (In fact, in code review, I would always
expect that to be rewritten as [x].)
In turn, this means that (:[]) doesn't convey my intentions as directly as
possible. I want to build a list that contains a single element x, which I
usually think of as [x]; the fact that I do this by consing x with an empty
list is an implementation detail.
More generally, lists merit a special case because list notation is
*already* a special case, and we can't do anything about that at this point!
On Tue, Aug 13, 2019, 10:49 Jon Fairbairn
Tikhon Jelvis
writes: Idioms like (:[]) are not intuitive at all.
Can you explain that? Once one knows that all infix operators can be used in sections (+1), (++"foo"), etc, that notation should be obvious, both in reading and writing. It’s much better to use ideas that are uniformly usable throughout the language and can be learned once than to have to learn numerous specific words.
I’m -1 on the proposal, obviously.
-- Jón Fairbairn Jon.Fairbairn@cl.cam.ac.uk
_______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries