Andrew Coppin wrote: > Idiomatic Haskell seems to consist *only* of single-letter variable > names. When did you last see a pattern like (customer:customers)? No, > it'd be (c:cs), which isn't very self-documenting. Ditto for type > variables by the way. (Map k v, anyone?) It also seems to be Haskell > convention to use "a" as a type variable; personally I always use "x". I > guess that's the algebra in my blood or something... >
The more abstract (generic) thing gets, the less likely you will be able to find a telling name. And if you cannot find a telling name, you can just as well make it short. And as Haskell is more abstract, we get more short identifiers. E.g. in your earlier sorting function: qsort (x:xs) = ... what would you propose to call the elements? Yes, if it sorted customers, you call 'em (customer:customers). But you have made a very abstract sorting function, which sorts a lot besides customers. And then you are bound to end up with a non-telling name. However, I will grant you that Map k v, could have used longer type variables. But we are not alone with using one letter type variable names http://java.sun.com/javase/6/docs/api/java/util/HashMap.html . And frankly, in this specific case, I think most programmers (Haskell or non-Haskell) will be able to guess what k and v means, when they are standing right after Map. Greetings, Mads _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe