It's clear the names were chosen to be 3 characters long whilst being as clear as possible as to the word - miss out all but the most prominent consonants. A lot of the standard functions have better/easier-to-follow names, but admittedly not all!
It's historical accident, really, what the names were, and there's not a lot we can do about it without annoying a lot of people who have got used to them and have a large code base relying on them. At least Haskell didn't call search grep!
Feel free to write first = fst
and second = snd
at the top of your file - it won't take long to use your preferred name, and ghc -O2
will compile them out.
first
and second
are actually used for something more complicated in Control.Arrow but you don't need to go that deep at this stage.