[Haskell-cafe] Use of abbreviations in Haskell
Felix Martini
fmartini at gmail.com
Fri Jan 2 09:20:07 EST 2009
Hi all,
There is currently a discussion on reddit/programming about Haskell.
One complaint is that Haskell functions often use abbreviated names. I
tend to agree with that. In my personal experience it generally takes
more time to learn a third party Haskell library than libraries
written in other languages. I am not sure why but it could be because
of function names. It seems to me that Haskell's current record syntax
enhances this. Take for example the new xml library,
data Element = Element {
elName :: QName
elAttribs :: [Attr]
elContent :: [Content]
elLine :: Maybe Line
}
data Attr = Attr {
attrKey :: QName
attrVal :: String
}
data QName = QName {
qName :: String
qURI :: Maybe String
qPrefix :: Maybe String
}
Personally i would prefer it to be something like
data Element = Element {
name :: QualifiedName
attributes :: [Attribute]
content :: [Content]
line :: Maybe Line
}
data Attribute = Attribute {
key :: QualifiedName
value :: String
}
data QualifiedName = QualifiedName {
name :: String
uri :: Maybe String
prefix :: Maybe String
}
but the global scope of the record field names doesn't allow that and
therefore all kinds of abbreviations are inserted in front of the
record field names which are hard to remember. So a better record
syntax would be welcome. Perhaps the constructor could be used to
limit the scope of the record field name e.g. QualifiedName.prefix?
Regards,
Felix
More information about the Haskell-Cafe
mailing list