Rebol 3 で関数のディスパッチャーを作成しようとしています。これにより、プログラムが受け取る文字列ごとに、呼び出される関連関数が存在します。
例えば:
handlers: make map! [
"foo" foo-func
"bar" bar-func
]
ここでfoo-func
とbar-func
は関数です:
foo-func: func [ a b ] [ print "foo" ]
bar-func: func [ a b ] [ print "bar" ]
アイデアはselect
、文字列から始まる関数に対するものなので、次のようになります。
f: select handlers "foo"
そのため、実行f
は実行と同じであり、いくつかの引数を指定してfoo-func
呼び出します。f
f param1 param2
の単語を引用するmap!
か、get-words を使用しようとしましたが、成功しませんでした。
aget-word!
を通過せずにコンソールでa を使用すると、次のmap!
ように機能します。
>> a: func [] [ print "Hello world!" ]
>> a
Hello world!
>> b: :a
>> b
Hello world!
どんな助けでも感謝します。