Wednesday, May 30, 2007

Mein erster Blogeintrag

Heute will ich meinen ersten Blogeintrag veröffentlichen. Ein Vorsatz der ich mir schon länger vorgenommen habe!

Als analytisch, vorsichtig und strukturiert denkender Mensch musste ich mir aber zuerst einige Fragen beantworten, bevor ich nun mit meinem ersten Blogeintrag starte.

Frage: Soll ich auf Englisch oder Deutsch schreiben?
Antwort: Ich schreibe auf Deutsch da mein Deutsch besser als mein Englisch ist. Falls ich jemals so schlaue Sachen schreiben werde dass es auch die "englische Welt" wissen sollte, wechsle ich die Sprache.

Frage: Über was schreibe ich?
Antwort: Ich schreibe über Softwareentwicklung wie ich sie verstehe, was ich davon verstanden habe oder was ich noch verstehen möchte. Ich schreibe hier über Softwareentwicklung da dies mein Job und einer meiner Leidenschaften ist. Falls ich damit die Welt verändern kann, werde ich vielleicht auch mal über Sachen sprechen welche mich persönlich beschäftigen.

Frage: Warum schreibe ich?
Antwort: Da ich schon immer das Bedürfnis hatte den anderen die Welt aus meiner Sicht und Überzeugung zu erklären. Und natürlich bin ich auch gespannt ob der Blog tatsächlich auch jemals von jemanden gelesen wird.

Also los ... mal schauen was daraus wird.

Monday, May 28, 2007

p geht zu f

Mit der nächsten Version von .NET (Codename 'Orcas') werden wir tagtäglich mit Lambda-Ausdrücken arbeiten. Doch wie spricht man ein Lambda-Ausdruck überhaupt aus?

Was ist zum Beispiel mit p => f => f(p) ?

Wes Dyer vom C# Compiler Team spricht es in einem Interview als 'goes to' aus. In Englisch ist das also p goes to f goes to f(p). Ich finde dies in Ordnung aber beim Einsetzen der Variable f im Ausdruck f => f(p) finde ich das 'goes to' ungenau, da neben dem Binden der Variable f auch gleich die Funktionsapplikation f(p) stattfindet.

Eric White spricht in seinem Blogeintrag, abhängig von jeweiligen Kontext, von einem 'becomes' oder 'such that'.

Für das oben genannte Beispiel finde ich p goes to f becomes f(p) das Beste, weil der Lambda-Ausdruck in folgenden Schritten evaluiert wird:
  1. 'p => f' oder 'p goes to f', da nach dem Einsetzen der Variable p eine anonyme Methode resultiert welche p bindet und f als Parameter hat. In dem Sinne geht also p zu f, oder eben 'p goes to f'.
  2. 'f => f(p)' oder 'f becomes f(p)', da nach dem Einsetzen von f die Funktion f(p) ausgeführt wird. In dem Sinne wird als f in f(p) umgewandelt, was auf Englisch dann auch als 'f becomes f(p)' ausgesprochen werden kann.

Ich werde also in Zukunft das letzte '=>' als 'becomes' und alle vorangehenden '=>' als 'goes to' aussprechen.

Beispiele:

  • 'a => b => a+b' ist 'a goes to b and becomes a+b'
  • 'a => 1 + a' ist 'a becomes 1+a'