Saturday, March 18, 2006

Python er pyton

En venn påpekte at Alan Perlis har sagt
A programming language in which the irrelevant is as portentious as the critical in programs is a low order language.
For å se at Python ikke er et høynivåspråk, her er en liten forklaring på hvordan man skal skaffe seg en 32-bit integer. Anta at X er et tall større enn 0xffffffff (som er 32 bit). Da vil man kunne tro at X & 0xffffffff vil fungere. Ikke det nei. Hva med tanken at int(X & 0xffffffff) ville resultere i en 32-bit integer. Men nei. Saken er at funksjonen int() ikke returnerer en integer medmindre parameteret passer; tro det elelr ei, men int() returnerer long (og ikke int) for de aller fleste verdier. Uten noen advarsel, naturligvis!
For å finne en 32-bit integer må man skrive int((X & 0xffffffff) - 0x80000000). Høynivå?
Som om dette ikke er nok: Python påstår hårdnakket at 1/2 == 0. Say no more. Dustespråk!

Link