Dat mag
Functionele talen als LISP/Scheme zijn compleet, juist doordat ze functies als equivalent aan een expressie of variabele beschouwen (om precies te zijn, als een lambda-expressie).[/ot]
Yep.. maar dat neemt nog steeds niet weg dat een Strategy krachtiger is dan een functie. Bij een strategy kan je state meenemen tussen de calls, en bij een strategy kan je state meenemen dat voor alle calls zo is. Uiteraard kan je wel met partieel parametrisatie, functies al gedeeltelijk voorzien van informatie, maar hoeveel standaard talen ondersteunen dit? Hogere orde functies zie je nog wel eens terug in mainstreamtalen, maar verder ook niet.
Daarom blijf ik bij mijn stelling dat strategies krachtiger zijn dan functies (binnen mainstream talen, want in de niet mainstreamtalen heb ik weinig praktische kennis.. alleen wat theoretische)
[edit]
Echte functionele talen kunnen trouwens ook veel beter closures bepalen dan talen zoals Java. Je zou ook nog state kunnen definieren in functie waarin je de functie aanmaakt. Helaas kan java dit vrij slecht (vandaar dat geklunger met die finals). Dus ook al zou java hogere orde functies ondersteunen, het zou minder krachtig zijn dan bij een echt functionele taal omdat je minder eenvoudig state mee kan nemen.
[
Voor 40% gewijzigd door
Alarmnummer op 04-06-2005 18:40
]