On Tue, 2011-09-13 at 07:27 +0100, Kevin Wright wrote: > [ . . . ] > This breaking news, just in: C has objects, and Lisp has static types. > > More details to come as events unfold. > :-)
Kevin, In reading the entries for this thread, I was at a loss as to where to dive in. Thanks for providing a cue! C++ prior to C++11 has what is effectively closures in that you can create instances of classes with an operator ( ) overload and ensure that the constructor requires parameters such that an instance of the class has no free variables. This technique has now been folded into the lambda functions introduced in C++11 and given a specialist syntax so people don't have to roll their own. Java not allowing operator overloading makes this just a tiny bit more verbose: you have to call the function call or something. Nonetheless the same programming idiom applies. The issue here is the difference between "infrastructure that allows" and "syntax that represents". Having "syntax that represents" is a raising of the abstraction level that means (generally) that the language is easier for programmers to write good programs. Clearly there are counter-examples, but the point remains. -- Russel. ============================================================================= Dr Russel Winder t: +44 20 7585 2200 voip: sip:[email protected] 41 Buckmaster Road m: +44 7770 465 077 xmpp: [email protected] London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
signature.asc
Description: This is a digitally signed message part
