2005-09-16
 
maastricht
MAASTRICHT - Tot dusverre bevalt het me prima om een weekje terug te zijn in Nederland. Woensdag vertrokken we uit Hellendoorn naar Maastricht; ik was er (jaren geleden) al enkele keren geweest, en nu leek het mij een leuke stukje Nederland om Ann-Christin te tonen. We vertrokken wat later dan gewenst, omdat de bus pas na het middaguur voor het eerst langskwam... (semi) openbaar vervoer in Nederland... Op station Nijverdal aangekomen, wilde ik een kaartje kopen. Dat ging echter niet. Er is alleen een automaat, en die accepteert bankpasjes en muntgeld -- natuurlijk niets dat 'buitenlanders' zoals ik bij zich hebben. Moet ik misschien 56 euro aan muntgeld in mijn zak hebben?! Toch maar in de trein naar Zwolle gestapt, en niet gecontroleerd...

Maastricht is een erg 'sjoene' stad om te bezoeken. Nadat we woensdag aankwamen, kostte het niet veel tijd om een redelijk geprijsd hotelletje in het centrum te vinden (aan de markt). Na het noodzakelijke opfrissen, Nederlandse en Duitse televisiekijken en in slaap vallen, brachten we de avond door in een gezellige Maastrichtse kroeg, met weinig licht en donker bier. Dat was leuk!

Donderdag verkenden we Maastricht nog een beetje verder, met wat basilieken, kastelen en diverse andere oude gebouwen. Maar vooral natuurlijk met wat bier. Finland heeft me gehersenspoeld... zeg mij na: Bier In Nederland Is Goedkoop. Verder kocht ik nog wat kleren en wat willekeurige andere onbelangrijke zaken, zoals een boekje: 'Duits - de fijne kneepjes'. Juist de grote overeenkomsten zorgen ervoor dat je je gauw vergist. Doos/Dose, zee/See, net/nett, afzichtelijk/absichtlich,... En laat ik nog maar zwijgen over het verschil tussen ich komme zu dir en ich komme bei dir...

Daarna togen we weer naar Den Haag, om bij m'n zus te logeren (die er niet is); via een rit in de smerige Haagse tram naar Nootdorp. En we zijn weer in het heden...

Ik las het interview met Autrijus Tang uit Taiwan, een van de mensen achter Perl6, die als hobby programmeert in Haskell - en hij implementeerde Perl6 zelfs in Haskell. Over Haskell schreef ik al eerder, maar het is leuk om wat mee te spelen... onderstaand de definitie van de functie ispriem, die vertelt of een getal al dan niet een priemgetal is. Zoals te zien is het programma feitelijk niets anders dan het omschrijven van de definitie van een priemgetal in Haskell:

delers  n =   [y | y <- [1..n], n `mod` y == 0]
ispriem n =   delers n == [1,n]
Met een Haskel-interpreter kunnen we dan eenvoudig en elegant doen:
Main> ispriem 1
False
Main> ispriem 2
True
Main> filter ispriem [1..100]
[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97]
(Natuurlijk kunnen priemgetallen veel efficiënter berekend worden - excercise for the reader). Goed is te zien hoe elegant je van een formele specificatie (de priemdefinitie) naar een programma kunt komen. Om die Tang nog maar eens te citeren, volgens hem is Haskell:
"faster than C++, more concise than Perl, more regular than Python, more flexible than Ruby, more typeful than C#, more robust than Java, and has absolutely nothing in common with PHP."

Er zijn tamelijk complete bindings voor GTK+/Gnome voor Haskell. Maar I/O in Haskell blijft een wat rare constructie - side-effects zoals I/O zijn eenmaal een beetje schmutzig...


0 Reacties:

Een reactie plaatsen


Emacs, the UberEditor Powered by Blogger