Tclコマンドマニュアル


klic module predicate ?argument?
□ 機能
Tcl 側から、klic の述語を呼び出す。
□ 引数
module および predicate で、呼ばれるべき述語を指定する。述語に渡す引数は、その後にいくつでも指定できる (klic述語側では、その全てを一つのリストとして受けとる)。出力引数 Stream に、klitcl との通信に用いるストリームが返る。
□ 内部処理
Tcl 側で拡張されたコマンドであり、内部では、述語の呼び出しであることを示す文字列と、モジュール名・述語名・引数列をソケットを通じて klitcl 側に送っている。
□ 使用例
main :- klitcl:klitcl_init(S),
        :
        klitcl:tcl_eval("button .b -command \
                         {klic main pushed foo bar}",_)-S,
        :
pushed(Args,I,O) :- 
        :
        klitcl:tk_wait(I,O).
これにより、「押されることにより klic 側の main:pushed を["foo","bar"]という引数(および、ストリーム変数2つ)で呼ぶ」ボタンを定義している。
Tcl 側で指定した引数は、文字列からなるリストとして、呼ばれる述語の第1引数に単一化される。
□ 注意事項
Tcl 側には、特に結果を表わす文字列は返さない。