( kmARC | 2013. 05. 10., p – 15:49 )

Én javaban fordítási hibára (loss of precision) gondoltam, de meglepett, nem ez van. 7-et ír ki. Természetesen nem hagyott a dolog, kipróbáltam i = i*2.5-tel is, itt bizony hiba van. Na az, hogy ez különbözik, kicsit tényleg confusing.
C++-szal (gcc) mindkét verzió lefordul, 7-et ad eredményül. Haskellban nem fordul (a szorzás, *= hiányában, ugyebár pure)

Értem, hogy a mondandód az, hogy azért a java sem lett túl egyszerű, a példáid valóban alátámasztják. Sőt én is ráteszek egy lapáttal, a 8-as, 9-es verziókban bejövő funkcionális elemek méginkább bővítik, bonyolítják a nyelvet.

A *= példád is jó, de az, hogy én nem tudtam, nem feltétlenül a nyelvet minősíti, hanem a tudásom.