有野
有野です。
Scheme自体はSICP+お遊び、程度ですね。 以前SCMにWindowsのCOMを入れる、というのを途中まで実装した事があります。
http://members.tripod.co.jp/k_arino/win32ole.tgz
です。 Tiki:Lispの下の方にうじゃうじゃ書きましたが。
SchemeとOLEはいまいち相性が良く無いですねぇ。 ジェネリックファンクションとかにするべきか…
- 相性が良くないってことは無いと思いますよ。純粋に関数的に書こうとすると ばりばりに状態を持つインタフェースとぶつかってしまいますが、状態をclosure の中に閉じ込めるのはSchemeでは昔から行われて来たので…
(define ie (create:win32ole "InternetExplorer.Application")) (ie 'put 'Visible true)
- みたいなのが「伝統的」なSchemeかもしれないです。 CLOSライクなOO systemが使えればgeneric functionにしてしまう方が見やすいと 個人的には思いますが。--Shiro (2002/05/21 14:13:03 PDT)
- うーむ、一応putとかまでならうまく行くとは思うのですが…ここの908とかが私の考えです(2chで失礼)。相性が悪い、というのは、イベントループ回りがうまいインターフェースを思いつかなかったからです(^^;--有野
- STkでは、低レベルではTkコマンドを一種のクロージャにして、高レベルで OOPにカプセル化 (propertyがslotに、actionはgeneric functionになる) してて綺麗でしたね。やっぱりそういう構成がSchemeちっくですかね。 イペントループのほうはOLEの知識が無いんで想像つきませんです --Shiro
EmacsLispが大好きで、会社でPerlで使い捨てスクリプトを書こうとしている人を見つけたら、 とりあえずEmacsLispを薦めています(そして皆に無視される…)