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 <jon.fairbairn@cl.cam.ac.uk> wrote:
Tikhon Jelvis <tikhon@jelv.is> 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