
On Thu, Dec 17, 2009 at 10:39 PM, Richard O'Keefe
On Dec 18, 2009, at 5:00 PM, Luke Palmer wrote:
My preferred way to increase the readability of code is to keep names short and *limited in scope*.
That's good. Haskell code is chock full of one and two letter highly local identifiers.
I am actually rather ambivalent to this practice. I was referring more to the 4-8 letter, 1-2 word range: functions named "collect" or "diagonals" or "split". A name like this together with a type signature is frequently enough to uniquely identify the function in question; without a good name, not so much. I find one and two letter identifiers the best way in a few situations, eg. in "map (x:xs) = ...", where there is hardly a better name for them ("head" and "tail" perhaps... but it is blindly clear from context what they are...). On the other hand, a function like Martin Escardo's:
find_vii :: (Cantor -> Bool) -> Cantor find_vii p = b where b = id'(\n -> if q n (find_vii(q n)) then Zero else One) q n a = p(\i -> if i < n then b i else if i == n then Zero else a(i-n-1))
is pretty rough reading for me. Luke