> Tennent's Correspondence Principle means that you always can create a
> function that can replace an expression and it always means the same
> thing.

Mikael,

that's awkwardly phrased, but correct. However, it has nothing to do
with Java not being a functional language. I can only imagine the bugs
it will cause if TCP is violated. Imagine you have some old code and
now CICE and a C#-using-equivalent come along. You revisit that code
and decide to upgrade to using:

using(closeable, Block() {
   // old code
   someMap.get(this); // ouch
   // more old code
});

In a pure language (which Java is by no means) this would happen all
the time, because e.g. if-else is implemented as a message on Boolean
(hello Smalltalk). In those languages the violation of TCP would be a
major annoyance, but at least you would get used to it. In Java it
would simply be a source of evil evil *evil* bugs!

With kind regards
Ben
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "The 
Java Posse" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to