On Thu, Nov 11, 2010 at 7:44 PM, Jonathan S. Shapiro <[email protected]>wrote:
> Other than bit sets and enumerations, what **commonly used** types want to > introduce new, named literals? > > [and unions, for constructors] > > shap > > If you are asking about programming languages in general, then "syntax for hashes" has to be up there. Common Lisp has keyword lists, and Ruby has keyword identifiers that as I recall were borrowed from that language. When programmers don't have syntax for hashes, I've seen them do dumb things to abuse the production rules and semantics of the language. For example, the ASP.NET MVC team at Microsoft did the extremely foul sin of abusing new language features like anonymous classes to approximate Ruby's keyword identifiers and how Ruby on Rails makes use of them. There are other examples I can think of, but this one is fairly prominent and amusing. As a consequence of this stupid hijacking of language constructs, most of the APIs in the ASP.NET MVC trunk are not readable (in my humble opinion) because they contain gratuitous overloads to handle situations where the programmer passes in any old Object type, and the MVC runtime then uses .NET reflection to treat attribute names as keyword identifiers, and the attribute values as the coinciding mapped value. This is obviously really gross to any mathematician, and I would argue demonstrates that a language designer needs to know a lot about its users to design a good syntax for them. Cheers, Z-Bo
_______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
