Ich versuche, einen Dispatcher von Funktionen in Rebol 3 zu erstellen, so dass für jede Zeichenfolge, die das Programm empfängt, ist eine zugeordnete Funktion aufgerufen werden.So rufen Sie eine Funktion aus einer Reihe von Funktionen und rufen Sie
Zum Beispiel:
handlers: make map! [
"foo" foo-func
"bar" bar-func
]
wo foo-func
und bar-func
sind Funktionen:
foo-func: func [ a b ] [ print "foo" ]
bar-func: func [ a b ] [ print "bar" ]
Die Idee ist, select
die Funktion aus der Zeichenfolge beginnen, so:
f: select handlers "foo"
so dass die Ausführung f
ist die gleiche wie foo-func
Ausführung und ruft dann f
mit einigen Argumenten:
f param1 param2
Ich habe versucht, die Worte in den map!
zitieren, oder mit get-Worten, aber ohne Erfolg.
ein get-word!
an der Konsole verwenden, ohne map!
Durch es funktioniert:
>> a: func [] [ print "Hello world!" ]
>> a
Hello world!
>> b: :a
>> b
Hello world!
Jede Hilfe sehr geschätzt.
, das eine Arbeit auch foo: func [] [print "Hallo"] in System/Kontexten/Anwender erhalten Sie auf Wort "foo" – endo64