#Gauche-Tkのno-console.exeの件ですが、ここを見るとWindows版は標準のコンソールを使って無いようですね。
##wish.exeの起動にさえ成功すれば、console hideコマンドを送ることで、wishのconsoleは消せます。
#wishnolib\gauche\process.scm のcmd.exe
#あはん
#wishの起動は、lib\gauche\process.scmのcmd.exeの呼び出しで良いのでしょうか?
#私のいじった感じでは、wish.exeの起動は出来てて、その後でパイプを通してwishにGaucheからコマンドを送ろうとしたところでGaucheが死んでるようです (したがってデフォルトのwish窓が残る)。これは相手がwishでなくても、例えばgosh.exeをgosh-noconsole.exeからrun-processしてパイプで通信しようとした場合でも起きるので、gosh-noconsole側の問題じゃないかと見当をつけています。
#なるほど。
#> sakae さん
#当面の回避策としては、
#Set shell = WScript.CreateObject("WScript.Shell")
shell.Run "gosh.exe C:\home\tmp\button.scm", 0, false
#の2行だけのファイルを作り、 button.vbsのように拡張子vbsで保存します。
#後は、このvbsファイルをダブルクリックすればDOS窓無しでGauche-Tkのアプリが立ち上がります。
#$マクロは関数以外にも使えるわけですが、注意するべき点はありますでしょうか?
#gosh> ( ($ ^x $ print x) 89 )
89
#<undef>
#マニュアルの文章では関数以外で使うことはいけないことのような雰囲気なんですが。(わたしの感じ方なのかもしれません。)
#$*が入るとうまくいかないと思います。'$' の場合でも今はたまたま問題が出てないかもしれませんが、関数なら許される変形 (e.g. (f x) == (apply f (list x)) など) がマクロでは自由に使えない場合があり、実装者としては関数を仮定して「同じ動作になるはず」の変更を後で加える可能性があるので、マクロを使うことは推奨しません。
#ありがとうございます。関数のための$ということは、多値に対応したcomposeとの使い分けがポイントになるのかなと思いました。(じつはマクロをつかってもいいんじゃないのかなとか思っていた。(汗)