Is there any special reason that to construct list in Scheme you use
(cons 1 (cons 2 (cons 3 nil)))
(cons 3 (cons 2 (cons 1 nil)))
? While the first seems more obvious because it reads in the right order, the second is the one which actually reduces in the right order. Also, it seems more natural to construct a list starting with nil and adding elements to it, not the opposite. I've also found the latter has properties such as being very curry friendly:
(cons 1) nicely becomes
a function that appends 1 to a list.