- 1 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 14:52:44 ]
- 【英語サイト】
プロジェクト本拠地 tcl.sourceforge.net/ 最新版ソースコード ftp://ftp.tcl.tk/pub/tcl/nightly-cvs/ The Tcler's Wiki wiki.tcl.tk/ The comp.lang.tcl Newsgroup groups.google.com/group/comp.lang.tcl/ ActiveTcl www.activestate.com/products/activetcl/ 【日本語サイト】 もっとTcl/Tk www.interq.or.jp/japan/s-imai/tcltk/ Tcl/Tk Scripting Laboratory www.geocities.jp/urano343/tcltk.html Tcl/Tk Primer mibai.tec.u-ryukyu.ac.jp/~oshiro/Doc/tcltk_primer/ Tcl 8.4.1 Manual Command Reference www.freesoftnet.co.jp/tclkits/doc/TclCmdRef/tcl_contents_jp.htm CategoryTclTk - mynote reddog.s35.xrea.com/wiki/CategoryTclTk.html 【前スレ】 ●●●●TCL/TKなら俺に聞け●●●● pc11.2ch.net/test/read.cgi/tech/1033628416/
- 358 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 22:49:17 ]
- 初心者すぎてすいません。
tclのproc関数の出力をtkのテキストに書き出すにはどのようにすれば いいのでしょうか? いまいちtclとtkの連携方法がわからず困っています。
- 359 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 02:01:41 ]
- んと、こんなんやってる
set str "hogehoge" f_text_update $str proc f_text_update {win str} if {![winfo exists $win]} { text $win grid $win -column 0 -row 0 } $win delete 0.0 end $win insert end $str }
- 360 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 02:12:55 ]
- んもしや回答を誤ったか?
f_text_update [f_proc_func] proc f_proc_func {} { return "hogehoge" } これでどうだ
- 361 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 06:25:56 ]
- >>359-360
ありがとうございます。 試してみます!!
- 362 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 11:35:53 ]
- >>356
この記事は読んだ? wiki.tcl.tk/4884
- 363 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 23:30:13 ]
- λx.λy.x(2)(3)
みたいなことをやろうとして、 apply {{x} {return [apply {{y} {return x}} 2]}} 3 てやっても x が返ってくる。 で、 apply {{x} {return [set [apply {{y} {return x}} 2]]}} 3 ってやれば3が帰ってくるが、setを使っている時点で2回目のapplyの戻り値が変数名であることを前提にしていて気持ち悪い。
- 364 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 14:38:54 ]
- ツール組込みのtcl環境でもlambda使いたい
- 365 名前:デフォルトの名無しさん mailto:sage [2008/11/10(月) 23:01:54 ]
- >>363
こりゃーいったい何をやろうとしとんじゃ?return xで 文字列のxが返るのはあたりまえじゃないか
- 366 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 14:14:10 ]
- >>365
単に$のつけ忘れじゃ? ついでに質問。 {}内の変数は置換されないよね? そうすると、applyの引数にとる関数にはその引数で宣言した変数しか出てこれない。 これだと、例えば「xを引数にとって、『引数yをとって、yとxとの和を求める関数』を返す関数」とかが表現できない気がするんだけど… ""だとyが束縛されてないし…無理矢理置換するしかない?
- 367 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 20:25:25 ]
- 答えると、Tclにはクロージャ無いねん。
だからxを置き換えるしかないんじゃないかなあ。 set func {x {return [list y [list expr $x + \$y]] }} apply [apply $func 1] 2 3 こういうこと?
- 368 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 00:20:16 ]
- >>365
λx.λy..x =λx.x でしょ。 こうならないってこと。
- 369 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 08:27:21 ]
- >>368
> >>365 > λx.λy..x > =λx.x > でしょ。 そんなequalityを持つλ計算の体系は見たことが無い
- 370 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 22:42:02 ]
- 結局なんだったんだ。もう
- 371 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 10:04:27 ]
- >>370
同感
- 372 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 10:11:42 ]
- 点が余計に入った
λ.x.(λy.x)は変換するとλx.xだろうと。
- 373 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 18:14:51 ]
- >>372
お前が前提にしているλ計算の公理系を言え。 通常のβη変換ではλx.(λy.x) = λx.xは導出できない。
- 374 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 09:35:24 ]
- Tcl and the Tk Toolkit, Rough Cuts, 2nd Edition
* By John K. Ousterhout, Ken Jones www.informit.com/store/product.aspx?isbn=0321601750&rll=1 ついこの前プレンティスから出てる妙に読みにくいTcl本買った俺涙目
- 375 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 19:08:03 ]
- 日本語で良書なTcl本ってなにがあるかな
- 376 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 20:34:12 ]
- ものすごいつまらんこと聞いていいっすか?
Tclって、pythonで言うところのinputとかraw_inputって無いの?
- 377 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 22:11:19 ]
- gets
- 378 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 09:18:28 ]
- >>376
pythonで言うところのinputって何をするものか書いたほうがアドバイスもらえると思うが?
- 379 名前:376 mailto:sage [2008/12/02(火) 20:46:30 ]
- >>378
それもそうですね。失礼しました。自分は職業プログラマではな いのであんまりうまく説明できそうにないですが。。 webで見つけた説明によれば、 raw_input関数 標準入力から1行読み込んで(末尾の改行をのぞいたものを)文字列に変換して返す。 >>> s = raw_input() test >>> s 'test' とこんな感じです。上記はインタプリタでの動作です。 呼ばれると、ユーザの入力を待つモードになります。 ユーザが文字列を入力すると変数に文字列が代入されます。 input関数は数値入力用です。
- 380 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 20:56:09 ]
- やっぱgetsでいいじゃん
tclsh>gets stdin s test tclsh>puts $s test
- 381 名前:379 mailto:sage [2008/12/02(火) 23:32:57 ]
- >>380
レスありがとうございます。 getsにはそんな風に書くんですね。 channelIdってのが何を指してるのかサッパリでした。。 明日会社に行ってまた試してみます。 たまーに仕事用ツール作成でスクリプト書くんですが、 諸事情あって今回はTclにで書いていて。。
- 382 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 00:53:01 ]
- scan $str "%s,%s,%s,%s" a b c d
とかもあるよ。scanfみたいなの。 また正規表現を使った読み込みとか便利 set fp [open $fname] gets $fp str regexp {\[\s*\s*\]\s*(\w+)} $str d1 d2とかね 以下が改行取って読み込みとか set fp [open $fname];gets $fp str foreach i [split $str "\n"] { } 以下とかするとバイナリファイルも開けるよ set fp [open $fname] fconfigure $fp -translation binary binary scan [read $fp 1000] H* str
- 383 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 22:00:38 ]
- binary scanとbinary formatの使い方をすぐ忘れちゃうのは秘密だ
- 384 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 22:04:45 ]
- >>375
Tcl/Tkデスクトップリファレンスには超おせわになった。 あとEffective Tcl/Tk。この2冊はTcl/Tk修行時代の 10年位前にかなり読んだ。
- 385 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 21:58:58 ]
- Tcl初心者です。すみません、教えて下さい。
ビルトインコマンドにラッパーをかける事は できるのでしょうか。 例えば proc wrapper {cmd} { catch {eval {$cmd}} status puts "$cmd , $status" } : alias expr {wrapper expr} : expr {1+1} ;# wrapper {expr {1+1}} -> expr {1+1} ,0 的な感じです。
- 386 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 22:04:10 ]
- >>385
これじゃ無限ループになるだろ。exprはrenameして新たにラッパーのexprを定義すれば?
- 387 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 17:04:55 ]
- >312
>BrowseX for Windows使ってた人いない? Hv3というtkhtmlベースのブラウザならある。 tkhtml.tcl.tk/hv3.html
- 388 名前:デフォルトの名無しさん [2008/12/19(金) 21:06:51 ]
- Dr. OusterhoutがTclコアチームから抜ける。
groups.google.com/group/comp.lang.tcl/browse_thread/thread/99e2693293b3c945/e54399b0a7dd8ec1?show_docid=e54399b0a7dd8ec1&pli=1
- 389 名前:デフォルトの名無しさん [2008/12/22(月) 21:53:03 ]
- プログラムから逃げてきたのに卒論で無理やりやらされてる
Cで作ったexeファイルをtcl/tkで作ったGUI上で実行したりできるの? ていうかこんなことも分からない感じで死にそう・・・
- 390 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 23:27:50 ]
- >>388
そしてその翌日itclのコア組み込みが決定したのであった・・・! >>389 CでCUIのexe作って、Tcl/Tkでガワ作って、パイプで接続とか。 まあどんなことがやりたいかによる。CでDLL作って、それをTcl/Tk から使うほうが楽かもしれない。
- 391 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 00:07:48 ]
- >>389
unixだと楽だが、windowsだと面倒。
- 392 名前:デフォルトの名無しさん [2008/12/23(火) 11:28:21 ]
- え、incr Tcl?
正直オブジェクト指向を入れるなら参照とガベコレの概念を入れる前提で デザインしなおしたほうがいいのに・・・ (逆に言うとこの2つを入れればオブジェクト指向はこれまでどおり拡張でいいし) オブジェクト手動開放とか今日日ありえないっすよ。
- 393 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 11:40:20 ]
- >>391
んなこたーない。 execで実行するだけ。 so, dllも同じソースで簡単に作れるし(windowsはmingwのgcc使ってるけど)
- 394 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 19:53:07 ]
- いやwindowsは苦労するよ。
pathや引数周りに落とし穴がいっぱいある。 MSが早くcygnusを買収してくれればいいのに。
- 395 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 20:02:39 ]
- >>394
落とし穴ってなに
- 396 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 23:13:52 ]
- path周りの避け方はマニュアルに書いてあるだろ。
で、なんでcygnusが出てくるんだ? もはやTclはcygwinをサポートしてないぞ。 素直にActive TclをインストールしてCはMinGW使えばいい。
- 397 名前:デフォルトの名無しさん [2008/12/23(火) 23:38:12 ]
- 8.6b1きたあああああ!!!
try 〜 throwきたあああ!!! zlibきたあああ!!! ttk::spinboxきたあああ!!! tk fontchooserきたああああ!!! Canvasの回転文字きたああああ!!! ttkのvistaテーマきたあああ!!!
- 398 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 12:23:24 ]
- 今M1だが、修論でtcl使うはめになってubuntuの起動から勉強してるところなんだけど、
tclでパラレルポートからの入力って使える? その辺含んだお勧めの書籍なんかあれば知りたい。
- 399 名前:デフォルトの名無しさん [2009/01/06(火) 21:25:39 ]
- wiki.tcl.tk/2816
まずは適当に検索してみればいいとおもうの。
- 400 名前:本田 [2009/01/08(木) 21:18:47 ]
- AC3Dマニュアル
panda.ecs.cst.nihon-u.ac.jp/~hiroshi/ac3d/ac3dmanj.html 1998年11月6日更新 - AC3Dバージョン2以降に対応 AC3D mail2.nara-edu.ac.jp/~asait/graphics/ac3d/ac3d.htm >3 次元模型 (モデル) を作るためのソフトはモデラーと呼ばれています。 > AC3D はそのモデラーの一つで、随分人気があるようです。 > AC3D は今では商用ソフトになってしまいました。 Shareware Version. locgate.smtn.stavropol.ru/DOCs/Programming/OpenGL/ac3dwinsw2.zip 古いけどTcl/Tkスクリプト使用して参考になる。 最新版。 www.inivis.com/
- 401 名前:本田 [2009/01/09(金) 21:21:13 ]
- These are some sample files for the 3D modeller - AC3D
ftp://ftp.uni-duisburg.de/CAD/AC3D/acfiles.tgz AC3D Manual(Updated 11th March 1999 - Covers AC3D Version 2 onwards) ftp://ftp.uni-duisburg.de/CAD/AC3D/ac3dman.zip ftp://ftp.uni-duisburg.de/CAD/AC3D/ac3dman.tgz AC3D Manual Ver. 3.4.1 ftp://ftp.uni-duisburg.de/CAD/AC3D/ac3dman.pdf locgate.smtn.stavropol.ru/DOCs/Programming/OpenGL/ac3dwinsw2.zip に付属のGLU32.DLLとOPENGL32.DLLは、おそらくWindows95用でしょう。 Windows95以降に発売されたWindowsには、 GLU32.DLLとOPENGL32.DLLが付属してるとはずなので、 Windows95以降に発売されたWindowsをお使いの場合は、 AC3D v.2.0付属のGLU32.DLLとOPENGL32.DLLを削除したほうが、 AC3D v.2.0の安定性や速度が改善される可能性があります。
- 402 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 00:08:38 ]
- すみません質問させて下さい。
以下のコードのように、プロシージャfooを作っておいて 複数のボタンをpackする作業をまとめたいと考えています。 proc foo {w msg} { pack [button $w.$msg -text $msg -command {puts $msg}] } pack [frame .f] foo .f "b1" foo .f "b2" ところがボタンを押してcommandを実行させると、 以下のエラーが出ます。 Error: can't read "msg": no such variable ボタンを押したときにローカル変数msgを参照できていないということだと 思いますが、何か良い解決策はありませんか? よろしくお願いします。
- 403 名前:402 mailto:sage [2009/01/13(火) 00:10:15 ]
- 使用環境を書き忘れました。
WindowsXPでActiveTcl8.5.4.0.286921-win32-ix86-threaded.exe をインストールして使っています。
- 404 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 00:30:21 ]
- -command "puts $msg"
- 405 名前:402 mailto:sage [2009/01/13(火) 00:56:06 ]
- >>404
できました! "と{との違いを調べてきます。 早速の回答ありがとうございます。
- 406 名前:デフォルトの名無しさん [2009/01/13(火) 12:59:47 ]
- >>402
{}の違いがポイントではなく、-command で指定するコマンドが関数の外で実行されることがポイントなのです。 msg変数は関数fooのローカル変数なので、関数の外で実行されるボタンのコマンドからは参照できません。
- 407 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 21:28:04 ]
- >>404 ではないですが、もう少し補足しておきます
set msg AAA; pack [button .b -text PushMe -command "puts $msg"] としておいて、ボタン.bを押すと当然、AAAとコンソールに表示されます。 続けて、set msg BBBとしてボタン.bを押してみて下さい。 コンソールにAAAと表示されますね? これはどういうことかというと、
|

|