Es gibt 2 aus. Das Beispiel zeigt einerseits, dass auch Dictionary-Literale in einem Index-Ausdruck stehen können (und nicht nur Referenzen auf Dictionaries) – das aber ist eigentlich klar, denn in Ausdrücken stehen nun mal Werte, und ob sie direkt dort stehen oder lediglich eine Referenz auf sie, ist egal.

Interessanter ist, dass Funktionen auch nur Werte sind und die Funktionsnamen Referenzen auf diese Funktionen. Erst wenn der Aufruf-Operator (das sind die runden Klammern ()) auf so einen Wert angewendet wird, wird die Funktion tatsächlich aufgerufen. Was also in der letzten Zeile passiert, ist:

  1. Definiere ein Dictionary mit Zeichen als Schlüsseln und Funktionen als Werten
  2. Holen den zum Schlüssel ’a’ gehörenden Wert aus dem Dictionary
  3. Wende den Aufruf-Operator auf diesen Wert an und übergebe das Argument 1