In Hollywood sind Funktionen nur Variablen vom Typ Funktion. Daher können Sie leicht anderen Variablen zuweisen, z.B:
myfunc = DisplayBrush ; weist "myfunc" DisplayBrush zu myfunc(1, #CENTER, #CENTER) ; ruft DisplayBrush(1, #CENTER,... ; ... #CENTER) auf |
Sie können sogar die Definition einer Funktion als Auftrag schreiben:
p_Add = Function(a, b) Return(a + b) EndFunction c = p_Add(5, 2) ; c erhält 7 |
Die Definition von p_Add()
in der ersten Zeile ist die gleiche
wie wenn Sie schreiben:
Function p_Add(a, b) Return(a + b) EndFunction |
Sie könnten auch Hollywood-Befehle mit Ihrem eigenen Funktionen ersetzen. Wenn Sie z.B. wollen, dass alle Print()-Aufrufe stattdessen DebugPrint() verwenden, könnte der folgende Code dies zu tun:
Function p_Print(...) DebugPrint(Unpack(arg)) ; leitet die Argumente an DebugPrint() um EndFunction Print = p_Print ; alle Print() rufen nun p_Print() auf Print("Hello World!") ; Print() leitet nun nach p_Print() um |
Was die in Klammer eingeschlossenen drei Punkte ... bedeuten,
können sie unter Variable Anzahl von Argumenten (...) nachlesen.
Oder eine noch einfachere Lösung:
Print = DebugPrint ; leitet alle Aufrufe von Print()... ; ... nach DebugPrint() um Print("Hello World!") ; ruft direkt DebugPrint() auf |