[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 03/26 12:58 / Filesize : 286 KB / Number-of Response : 995
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

CommonLisp Scheme Part11



1 名前:デフォルトの名無しさん mailto:sage [04/08/02 23:13]
過去スレ
Part1: piza2.2ch.net/tech/kako/987/987169286.html
Part2: pc.2ch.net/tech/kako/1002/10025/1002584344.html
Part3: pc.2ch.net/tech/kako/1008/10082/1008220265.html
Part4: pc.2ch.net/tech/kako/1016/10162/1016211619.html
Part5: pc3.2ch.net/tech/kako/1023/10230/1023091882.html
Part6: pc3.2ch.net/tech/kako/1031/10315/1031560687.html
Part7: ruku.qp.tc/dat2ch/0311/20/1042167213.html
Part8: pc2.2ch.net/tech/kako/1058/10582/1058263391.html
Part9: pc2.2ch.net/test/read.cgi/tech/1069594582/
Part10: pc5.2ch.net/test/read.cgi/tech/1075630259/

関連リンクは>>2-10あたり


403 名前:デフォルトの名無しさん mailto:sage [04/09/23 21:43:55]
くれぐれもshiroさんとこ行ったりして迷惑かけるなよ

404 名前:デフォルトの名無しさん mailto:sage [04/09/23 21:52:20]
汎用的に実装するのはまず無理だろうし,できたとしても
OS側の継続(変な言い方だけど)が戻らないんじゃ意味無し.
が,絶対に無理かと問われると断言できないのが歯痒いというか何というか.

405 名前:ミミ mailto:sage [04/09/23 22:02:04]

> 汎用的に実装するのはまず無理だろうし,
うーんと、私はコールバックを超えて継続したいと言っているんではないのですよ。

> OS側の継続(変な言い方だけど)が戻らないんじゃ意味無し
いや、ですから、OS 側の継続を行うのは可能なんですって。。。

> くれぐれもshiroさんとこ行ったりして迷惑かけるなよ
あのう、shiroさんて、誰でしょうか。。。

> あと、いいかげんsageろ知障。
すいません、やっと意味が分かりました。m(_ _)m


406 名前:デフォルトの名無しさん mailto:sage [04/09/23 22:22:17]
> コールバック A から OS 側に戻ろうとする直前に、
> あたかも、コールバック B から戻ったように見せかけることができれば、
この時点でOS側の継続は戻ってないと思うんだが

そもそもOSがコールバック関数を呼ぶってのは言わば見せかけであって,
実際にはプロセス間通信なんかが絡んでるの判ってる?

407 名前:デフォルトの名無しさん mailto:sage [04/09/23 22:26:21]
>>406
Windows素人は黙ってて欲しいなあ・・・

408 名前:ミミ mailto:sage [04/09/23 22:31:33]
>>406
たぶん、私の意図を誤解されています。
実際に OS 側の継続を戻す Scheme 実装系はありますよ。

409 名前:デフォルトの名無しさん mailto:sage [04/09/23 22:33:06]
OS のコールバックを跨ぐ事を前提にしているのに、
Scheme 側で生のスタックを使おうとしているのが、
根本的な設計ミスだろ?

普通の Scheme コンパイラで生のスタックを使っていたりするのは、
それが "たまたま" 使えたから。

それを理解せずにスタックに拘る奴は愚かと言う他はない。


410 名前:デフォルトの名無しさん mailto:sage [04/09/23 22:35:34]
>>408
> 実際に OS 側の継続を戻す Scheme 実装系はありますよ。

それはどの OS 上のどの実装系?
OS 側のサポートが無い限り setjmp/longjmp 以上のことができるとは思えないんだが。

411 名前:ミミ mailto:sage [04/09/23 22:45:10]
> 409
> OS のコールバックを跨ぐ事を前提にしているのに、

ですから、私はコールバックをまたぎたいんではないんですって。
コールバックをまたぐことはできないことは、最初っから分かっているんですよ。
私がやりたいのは、いかに継続をコールバックというしがらみから解放させたように
見せかけるか、という手法なんですよ。

> 普通の Scheme コンパイラで生のスタックを使っていたりするのは、
> それが "たまたま" 使えたから。
> それを理解せずにスタックに拘る奴は愚かと言う他はない。

スタックを記録するタイプの実装を行っている SCM は、
Mac, Win, Linux, BSD, Solaris, AIX, HP-UX, OS/2,
DOS, Amiga, Atari など多くの OS に移植されています。
これほど汎用的に使える手法を"たまたま"と表現することはできないでしょう。




412 名前:デフォルトの名無しさん mailto:sage [04/09/23 22:54:28]
>私がやりたいのは、いかに継続をコールバックというしがらみから解放させたように
>見せかけるか、という手法なんですよ。
で、そう見せかけるためには、実際にはコールバックをまたぐ必要があるんだろ?

>これほど汎用的に使える手法を"たまたま"と表現することはできないでしょう。
"たまたま" の意味を取り違えているな。
レジスタに 0 をセットのには、たまたま XOR が使えるけど、
123 をセットする為には、どんなにビットをいじくりまわしても
無理。素直にロード命令を使っとけって事。


413 名前:デフォルトの名無しさん mailto:sage [04/09/23 22:55:51]
> ですから、私はコールバックをまたぎたいんではないんですって。
まず,「コールバックを跨がなければ問題なく継続を扱える」のは
>>391さんの言う通り問題ない.
>>392の発言はどう読んでも「コールバックを跨ぎたい」という風にしか
読み取れないんだが.
> いかに継続をコールバックというしがらみから解放させたように
> 見せかけるか、
もう少し具体的に書いてくれ.これでは全く意味不明.

414 名前:デフォルトの名無しさん mailto:sage [04/09/23 23:00:38]
なんか変なやつが増えた?
具体的には412だけどさ・・・
おねがいだからこれ以上変なスレにしないでね(苦笑

恐らくミミが言ってるのはschemeで擬似的な継続を作ってやりすごそうって事だよな?
その偽の継続と、OS側の本物の継続はかならずしも一致しなくていい。


415 名前:デフォルトの名無しさん mailto:sage [04/09/23 23:03:01]
つまりschemeコード上で破綻してなければどんな手段の継続であるうとかまわない、
最終的にプログラムを終了させたときにOS側の継続と一致していれば良い、
って事だと思う。

416 名前:デフォルトの名無しさん mailto:sage [04/09/23 23:05:21]
だからコールバックに突入してそのままルートの継続呼び出して戻ってきても、
OS側の本物の継続はまだコールバックの中、ってこともありえる。

417 名前:デフォルトの名無しさん mailto:sage [04/09/23 23:11:02]
>>416
言ってることは分からなくもないが,別に疑似的な継続なんて持ち出さなくても
「コールバックを跨がなければ問題なく継続を扱える」
方法はあるわけで.

418 名前:デフォルトの名無しさん mailto:sage [04/09/23 23:17:24]
で,コールバックを跨ぐために疑似的な継続を持ち出してみたものの,
どのみちOS側の継続は戻せないので意味ないじゃん…という感じ.

419 名前:デフォルトの名無しさん mailto:sage [04/09/23 23:19:33]
別にOS側の継続戻す必要ないよ

420 名前:デフォルトの名無しさん mailto:sage [04/09/23 23:23:51]
おまいらちょっと用語の整理が居るんじゃないか?
おれは理解が追いついていないから何もできんですまんが


421 名前:デフォルトの名無しさん mailto:sage [04/09/23 23:26:00]
>>419
WM_* のコールバック中に継続を保存し、それを再開できるとでも?



422 名前:デフォルトの名無しさん mailto:sage [04/09/23 23:29:22]
コールバックをまたがないのなら、それは継続ではないし、継続である必要も無い。
全く無意味で非実用的な事態を想定し、無駄に思考時間を消費しているだけ。

423 名前:デフォルトの名無しさん mailto:sage [04/09/23 23:31:10]
>>420
ついでにカキコしてる人の整理もな…
どれとどれが同じ人の書き込みなのかさっぱり

424 名前:デフォルトの名無しさん mailto:sage [04/09/23 23:32:44]
>>423
「ミミ」以外は区別する必要無い気が

425 名前:デフォルトの名無しさん mailto:sage [04/09/23 23:54:40]
>>392 を図示してみた。間違っていたら指摘してくれ。
注)[Sn]:Scheme で使うスタック要素, [On]:OS で使うスタック要素

1.
>OS から コールバック A が呼ばれ、
スタック:[S1][S2][O1][O2][A]

2.
>そこで継続 ContA を作成して、
>トップレベルに束縛したとします。
スタック:[S1][S2][O1][O2][A]
ContA:[S1][S2][O1][O2][A]

3.
>次に、OS から別のコールバック B が呼ばれ、
スタック:[S3][S4][S5][S6][O3][O4][O5][O6][B]
ContA:[S1][S2][O1][O2][A]


426 名前:デフォルトの名無しさん mailto:sage [04/09/23 23:55:07]
4.
>そこから ContA を呼び出すとします。
>ContA を呼び出した直後は別に問題は発生しませんよね。
スタック:[S1][S2][O1][O2][A]

5.
>問題は、ContA を呼び出し後に、コールバック A から呼び出し側に戻って
>しまうことが問題なのですよね。
スタック:[S1][S2][O1][O2] <-これが問題。本来なら[O6]に戻るべき。

6.
>であれば、コールバック A から OS 側に戻ろうとする直前に、
>あたかも、コールバック B から戻ったように見せかけることができれば、
>いい感じがしませんか?
3.から4.に遷移する時に
スタック:[S3][S4][S5][S6][O3][O4][O5][O6][A]
となればいい、って事か?


427 名前:ミミ mailto:sage [04/09/24 00:07:07]
>>415
>>416
私の意図を汲み取ってくれています。
ありがとうございます。

>>425
>>426
最後の 6 だけ私の意図とは違います。

> 3.から4.に遷移する時に
> スタック:[S3][S4][S5][S6][O3][O4][O5][O6][A]
> となればいい、って事か?
のではなくって、
継続 A へ飛んだあと、
コールバックを終了して OS 側に戻る直前に、

スタック:[S3][S4][S5][S6][O3][O4][O5][O6]

となるということです。
したがって、これを行うのは、
コールバック A の C サンクの中です。


428 名前:デフォルトの名無しさん mailto:sage [04/09/24 00:07:16]
コールバックの用途が概ね副作用であり、大域的状態変化が伴う事を無視して
スタックだけを取り上げるのはいかがなものかと

429 名前:デフォルトの名無しさん mailto:sage [04/09/24 00:10:13]
>>410は無視ですかそうですか

430 名前:デフォルトの名無しさん mailto:sage [04/09/24 00:17:24]
410に限らず、都合の悪いレスは無視みたいね
オナニーは一人でやってほしいもんだ

431 名前:デフォルトの名無しさん mailto:sage [04/09/24 00:17:45]
>>429
素人さんは、すっこんでろ



432 名前:デフォルトの名無しさん mailto:sage [04/09/24 00:20:10]
410は何が知りたいんだろう・・・

433 名前:デフォルトの名無しさん mailto:sage [04/09/24 00:25:59]
>>410=429=430
setjmp/longjmpは、別に「OSの機能」で実現されてるわけじゃないぞ?
ほぼレジスタやスタックの操作だけ。
アセンブラというものが使える状況なら基本的にどのOSでも作れる。


434 名前:デフォルトの名無しさん mailto:sage [04/09/24 00:29:04]
>>433
だからこそOSを含めて継続の保存/復帰を実現するには、OS側のサポートも必要だろってことだよ。
で、そういう実装があるのなら参考のために是非知りたいということ。

435 名前:デフォルトの名無しさん mailto:sage [04/09/24 00:30:55]
>>434
おまえさ、わざと勘違いしてんのか?
つまんねえよ。
話の腰を折るだけのつもりなら消えてくれ。


436 名前:デフォルトの名無しさん mailto:sage [04/09/24 00:35:35]
なんか、OSを含めて継続保存とか意味不明なこと言ってるアフォがいるけど、
いつからOS含めた話になったの?

437 名前:デフォルトの名無しさん mailto:sage [04/09/24 00:37:55]
>>436
>>408に、「実際に OS 側の継続を戻す Scheme 実装系はありますよ。」とあり、
>>410は、その実装系はなんなのかを知りたいという。
ただそれだけの話なんだが、そんなに分かりづらいか?

438 名前:デフォルトの名無しさん mailto:sage [04/09/24 00:38:21]
WindowsプログラマとUNIX BAKA (BAd Knowhow Association)の
間で文化摩擦が発生しています

439 名前:デフォルトの名無しさん mailto:sage [04/09/24 00:42:16]
「OS側の継続」の定義がそれぞれ違うんだろうね。
なんかプロセス間通信とか言ってる馬鹿(=410)が混じってるので
これ以上続けても無駄な気がする。

それでも続けるなら、
ここからは「Windows限定」でどぞ↓


440 名前:デフォルトの名無しさん mailto:sage [04/09/24 00:42:35]
なんでそーなるの?
Windows でも X でも、Scheme 的継続はコールバック跨げないよ。

441 名前:デフォルトの名無しさん mailto:sage [04/09/24 00:44:31]
>>440
だから話をシンプルにするための処置だよ。
おまえた単にWindows嫌いなだけだろ。
以降「Windows限定」でどぞ↓



442 名前:デフォルトの名無しさん mailto:sage [04/09/24 00:46:44]
('A`)

443 名前:デフォルトの名無しさん mailto:sage [04/09/24 00:48:36]
そもそもXなんて誰も使わないしUNIX系は無視してもいいと思う。
「ミミ」自体Windowsって言ってるんだし。

444 名前:デフォルトの名無しさん mailto:sage [04/09/24 00:49:15]
いや〜、やっぱり Scheme は面白いですね。


445 名前:デフォルトの名無しさん mailto:sage [04/09/24 00:50:30]
(gc)

446 名前:デフォルトの名無しさん mailto:sage [04/09/24 00:50:58]
(exit)

447 名前:デフォルトの名無しさん mailto:sage [04/09/24 00:59:15]
UNIX馬鹿の粘着のおかげで横道逸れすぎて話が全然進まなかったな。

448 名前:デフォルトの名無しさん mailto:sage [04/09/24 01:00:04]
なんでもいいからさー、実装出してよ。

449 名前:デフォルトの名無しさん mailto:sage [04/09/24 01:10:55]
程よく荒れてきたようなので、一つ質問。

例えば、
ContA:[S1][S2][O1][O2][A]

で、[A] から抜けて([O2][O1]の事は脇に置いておいて)
[S2]に戻るから、これを「継続」って呼んでいるんだよね?

なのに 6.のように
[A] から抜けた後、[S6]に戻る(?)ものを
「継続」って呼んでも良いとでも思っているの?
それは Scheme でいう「継続」とは全く別のものじゃないの?


450 名前:デフォルトの名無しさん mailto:sage [04/09/24 01:30:40]
ミミタンの作る処理系は独自実装なので
そんなコトはどうでもいいのです。

451 名前:デフォルトの名無しさん mailto:sage [04/09/24 01:32:18]
別に問題ない。
スタックのどこであろうとschemeコードに制御が移ったのなら、それは立派な継続。
コールバック内外へ飛んだ事を「継続を使うユーザー」が知っていればいい。



452 名前:デフォルトの名無しさん mailto:sage [04/09/24 01:32:59]
とりあえず Scheme にやさしい OS をつくろうよ。

453 名前:デフォルトの名無しさん mailto:sage [04/09/24 01:45:21]
頭固い人多いね
ま、一人が粘着してるだけかもしらんけど・・

>>449
>「継続」って呼んでも良いとでも思っているの?
>「継続」って呼んでも良いとでも思っているの?
>「継続」って呼んでも良いとでも思っているの?

もうね、君に理解は無理だよ

454 名前:デフォルトの名無しさん mailto:sage [04/09/24 01:55:24]
>>453
>もうね、君に理解は無理だよ
いや、それはすなわち規格で規定された動作が
出来なくなってしまうという事を意味すると思ったのだが・・・

ま、確かに俺には理解不能だな。


455 名前:デフォルトの名無しさん mailto:sage [04/09/24 02:26:12]
>>454
ミミが定義した偽継続だからそれでいいんだろ。scheme的継続だと思ってはいけない。

456 名前:デフォルトの名無しさん mailto:sage [04/09/24 02:37:43]
規格に通らなくなるってわけでもなさそうだけど。
規定された動作って、どの辺の事?>454

457 名前:デフォルトの名無しさん mailto:sage [04/09/24 02:59:31]
実装の話もいいけど、
使う側の話もしようぜ?

458 名前:デフォルトの名無しさん mailto:sage [04/09/24 04:27:16]
ヒント。partial continuaionについて調べよ。


459 名前:デフォルトの名無しさん mailto:sage [04/09/24 08:17:03]
事の発端となった香具師の要件が明確でないのに本人はうやむやにしたまま消えちゃうし、
まるでそれと入れ替わるかのようにいつもは議論になっても出てこないような類のレベルの低い煽りのみを繰り返す香具師が出てくるし、
そんな状態で外野が言い合ってたって全く意味が無く、時間の無駄以外の何者でもないと思う。

460 名前:デフォルトの名無しさん mailto:sage [04/09/24 09:25:41]
ミミは夜行性だから夜まで待て

461 名前:デフォルトの名無しさん mailto:sage [04/09/24 13:45:00]
話を蒸し返すようで悪いが,「プロセス間通信云々」→「Windows素人は黙ってろ」
の流れの意味が分からない.誰か説明キボン.
例えば,Windowsのウィンドウプロシージャが呼び出される過程は,
・OSからウィンドウの属しているスレッドのメッセージキューに
 メッセージが送られる.(ここでプロセス間通信)
・ウィンドウの属しているスレッドにて,キューからメッセージ取り出し.
・取り出したメッセージを引数にコールバックプロシージャを呼び出す.
こんな感じじゃないの?
明らかにプロセス間通信は絡んでると思うんだけど.



462 名前:デフォルトの名無しさん mailto:sage [04/09/24 15:50:49]
www.double.co.nz/scheme/partial-continuations/partial-continuations.html

463 名前:デフォルトの名無しさん mailto:sage [04/09/24 16:23:22]
>>461
必死に慣れない参考書読んで調べたんだろうけどさ、基本的なことを
まるで理解してないな。
おまえが調べた内容は、OS側でブラックボックス化してる部分を
ただほじくりかえしただけ。つまり大ハズレもいいとこ。
これはね、まず恥ずかしいことなんだと認識してくれよ?
悦に浸るどころじゃないよ?(w
なんのためにスレッド毎にメッセージキューがあるのかをまずよく考えてね?
Windowsの開発者はメッセージキューの知識だけでプログラミングできるだろ。
あえて「プロセス間通信」を意識して扱う必要なんてないんだよ。
別にOSを作るわけじゃないんだから。
つーかプログラム書いた事もなさそうだし、どっか他行って勉強してきて。
もうね、ここで続けられると邪魔だから消えろ。

464 名前:デフォルトの名無しさん mailto:sage [04/09/24 17:38:49]
全然素人なんだけど、WindowsってOSの使用するスタック領域と
アプリケーションプロセスの使用するスタック領域は連続しているの?
連続しているからスタックを保存すれば継続が補足できると言う前提で
議論しているみたいだけど、OS側に制御が渡った瞬間、別のプロセス空間の
スタック領域にスイッチする場合、どう考えてもOS側の継続を制御するのは
無理のように思えるけど。。


465 名前:デフォルトの名無しさん [04/09/24 17:59:39]
>>464=461
全部間違ってる
もう引退時じゃね?
LISPには柔軟な頭が必要なのよ

466 名前:デフォルトの名無しさん mailto:sage [04/09/24 18:06:09]
> ・OSからウィンドウの属しているスレッドのメッセージキューに
>  メッセージが送られる.(ここでプロセス間通信)

PostMessage,SendMessageは
・他プロセスの場合は最初に該当するスレッドの保有するメッセージキュー領域を
メモリマップドファイルを使って共有し、データ書き込み。
・同一プロセス、他スレッドの場合は受信スレッドのメッセージキューに直接書き込み。
・同一スレッドなら、コールバックの直接呼出し。
こんな感じか?

467 名前:464 mailto:sage [04/09/24 18:11:17]
一応いっておくけど、461とは別人です。
>>425みてもわかるように、OS側の継続がアプリケーションと
同じスタックに乗っている前提で話してるよね?
違うのかな?


468 名前:デフォルトの名無しさん mailto:sage [04/09/24 18:11:50]
>>463
反応するのも馬鹿らしいが,
メッセージキューってのは立派なプロセス/スレッド間通信の一種.
あと,この部分は別にブラックボックスにはなってない.むしろ基礎の基礎.

>>464
> OS側の継続を制御するのは無理
これは正しい.
> スタックを保存すれば継続が補足できると言う前提で議論している
こっちは×.最終的にスタックを元の状態に戻してやれば
Schemeインタプリタ側では好き勝手にいじってもいいよねー,って話.
たぶん.

469 名前:464 mailto:sage [04/09/24 18:15:44]
>>468
コールバックは常に同一プロセス内から直接呼び出されるのなら、
スタックコピーで制御は戻りそうなんだけど、私が疑問に思ったのは、
コールバックを渡すOS側は同じプロセス空間で動いてないような気が
するんだけど。あてずっぽうですが。


470 名前:デフォルトの名無しさん mailto:sage [04/09/24 18:16:57]
>>458
www.google.co.jp/search?hl=ja&ie=UTF-8&q=R5RS+partial+continuaion&lr=
R5RS partial continuaionに該当するページが見つかりませんでした。
www.google.co.jp/search?hl=ja&ie=UTF-8&q=scheme+partial+continuaion&lr=
scheme partial continuaionに該当するページが見つかりませんでした。


>>462
規格とは関係ないみたいよ?
もちろん部分継続も問題ないし。
いったい何を危惧してるのかね。
ちゃんと継続を理解してる人って少ないの?


471 名前:デフォルトの名無しさん mailto:sage [04/09/24 18:19:46]
>>464
スレ違いな質問繰り返してんじゃねーよ
デバッガ使って自分で確かめろ
ミミよりウザイ



472 名前:464 mailto:sage [04/09/24 18:20:40]
Schemeインタプリタ自体は同一プロセス内で動いてるから、
スタックコピーで継続が戻るのは当たり前だと思うけど、
Schemeインタプリタとは異なるプロセスの継続も補足できるの?


473 名前:デフォルトの名無しさん mailto:sage [04/09/24 18:21:27]
>>469
メッセージキューにメッセージを置くのはOS側(もちろん違うプロセス空間で動いてる)だけど,
メッセージを取り出すのは自分なので問題ない.というか,別に違うプロセス空間から
呼び出されても問題ないと思うけど.

>>470
ミミがやりたいのは部分継続じゃないの? ってことだと思う.

474 名前:464 mailto:sage [04/09/24 18:24:37]
>>473
ああ、ここでコールバックって言ってるのは、あくまでも
イベントキューから自分で読み出して関数を呼ぶイベント駆動
プログラミングのことなんだね。
違うものを想像してたよ。


475 名前:デフォルトの名無しさん mailto:sage [04/09/24 18:25:26]
>Schemeインタプリタとは異なるプロセスの継続も補足できるの?
で き ま せ ん

なあ、その電波な質問はどっからやってくるんだ?


476 名前:464 mailto:sage [04/09/24 18:26:20]
>>475
言葉のすれ違いと思ってくんなまし。


477 名前:デフォルトの名無しさん mailto:sage [04/09/24 18:26:43]
つーか試しもしないで質問ばかりする464は不要な人材

478 名前:ミミ mailto:sage [04/09/24 18:46:38]
こんにちは。
昨日は遅くまでありがとうございます。
細かい議論はあるかもしれませんが、
おおまかなアイデアは理解していただけたようですね。

私は部分継続を行いたいのではなくて、
コールバックの検問所を作りたいということです。
図にまとめてみました。

479 名前:ミミ mailto:sage [04/09/24 18:47:08]
■従来のコールバックの実装

┌──┐
│ │ ┌────┐
│ │ ┌┘ │
│ CbA├─┘ │
OS │ ├─┐ ContA │
側 │ │ └┐ │
│ │ └────┘
│ │ ┌────┐
│ │ ┌┘ │
│ CbB├─┘ │
│ ├─┐ o--─────ここから ContA を呼ぶと
│ │ └┐ │ CbA から出て行ってしまう。
└──┘ └────┘ これは破綻する。


480 名前:ミミ mailto:sage [04/09/24 18:47:28]
■検問所式コールバックの実装

┌──┐
│ │
│ │ CbA ┌─────┐
│ │ ┌─┘ │
│ ├──┼─┐ ContA │
OS │ │ │ └─────┘
側 │ ⇔ │
│ │ │ ┌─────┐
│ ├──┼─┘ │
│ │ └─┐ o--───── ここから ContA を呼んでも
│ │ CbB └─────┘ OS 側に正しく戻ってくれる。
│ │
└──┘


コールバックは必ず検問所(⇔)を通して呼び出されるし、
検問所を通して戻る。検問所を通して戻るときは、
必要があればスタックの回復を行ってくれる。
したがって、Scheme 側では継続とコールバックの関係を
気にしなくてよい。

481 名前:ミミ mailto:sage [04/09/24 18:49:37]
■従来のコールバックの実装

┌──┐
│ │ ┌────┐
│ │ ┌┘ │
│ CbA├─┘ │
OS │ ├─┐ ContA │
側 │ │ └┐ │
│ │ └────┘
│ │ ┌────┐
│ │ ┌┘ │
│ CbB├─┘ │
│ ├─┐ o--─────ここから ContA を呼ぶと
│ │ └┐ │ CbA から出て行ってしまう。
└──┘ └────┘ これは破綻する。




482 名前:ミミ mailto:sage [04/09/24 18:50:32]
あれれ、うまく表示されませんねぇ。。。

483 名前:ミミ mailto:sage [04/09/24 18:54:26]
■従来のコールバックの実装

┌──┐
│ │ ┌────┐
│ │ ┌┘ │
│ CbA├─┘ │
OS │ ├─┐ ContA │
側 │ │ └┐ │
│ │ └────┘
│ │ ┌────┐
│ │ ┌┘ │
│ CbB├─┘ │
│ ├─┐ o--─────ここから ContA を呼ぶと
│ │ └┐ │ CbA から出て行ってしまう。
└──┘ └────┘ これは破綻する。


484 名前:デフォルトの名無しさん mailto:sage [04/09/24 18:55:39]
もういいよ・・・
なんとなくわかったから

書き込みの練習は専用板があるからそっちでやってくれ
aa5.2ch.net/aasaloon/

485 名前:デフォルトの名無しさん mailto:sage [04/09/24 19:18:16]
だから、具体的にどういう場面で使いたいのよ?
それは継続でなければならないのか?

486 名前:デフォルトの名無しさん mailto:sage [04/09/24 19:20:13]
UNIXっぽくない用途だって。

487 名前:ミミ mailto:sage [04/09/24 19:31:23]
>>485
> だから、具体的にどういう場面で使いたいのよ?

今のところ、特に使い道というものは考えていないです。

コールバック ベースの Scheme コードを書く場合、
Gauche のように継続に何らかを制限をつけるという方法もありますが、
検問所方式で常に安全を確保するという方法もあるのでは、
というだけです。

もう少しアイデアを膨らませたら、何か面白いことができるかもしれません。
Scheme 実装を書きながら、おいおい考えたいと思っています。


488 名前:デフォルトの名無しさん mailto:sage [04/09/24 19:35:08]
案の定何も考えてないのに非現実的なものを想定して時間を無駄にしてただけかよ
アホくさ

489 名前:ミミ mailto:sage [04/09/24 19:37:58]
>>448
そんなことはありませんよ。
どんな小さなアイデアも、大きな発明に結びつく可能性があるって、
どこかの発明家が言っていましたよ。

Windows 専用 Scheme で実現したい機能とかありましたら、
みなさんのご意見もお聞きしたいです。
面白そうだったら実装したいと思います。

490 名前:デフォルトの名無しさん mailto:sage [04/09/24 19:52:13]
RS232Cに継続ベースで送受信

491 名前:ミミ mailto:sage [04/09/24 19:57:05]
> RS232Cに継続ベースで送受信

ええ?これはどういうことですか?



492 名前:デフォルトの名無しさん mailto:sage [04/09/24 19:58:21]
なぜかここって学習能力のないUNIX知障が常駐してるね。
何故?
ここには何もありませんよ〜?

493 名前:デフォルトの名無しさん mailto:sage [04/09/24 20:03:36]
「知障」だの「全部間違ってる」だの言うだけで具体的なことを
何一つ言えない威勢のいいやつが一人居るなw

おれ? まあ、おれもそうかな・・・

494 名前:デフォルトの名無しさん mailto:sage [04/09/24 20:09:03]
>>489
そういうのは、まずできることをやってから言うもんだよ。
技術的知識やノウハウがなきゃ、せっかくのアイデアもその価値を正しく見極めることができず、
多大な時間とコストをかけて実装したのに実はもっと簡単でいい解法があった、なんてことになりかねない。
そうでなくても、モノが無いのに口先だけの人が好かれやすいとは思えないし。

495 名前:デフォルトの名無しさん mailto:sage [04/09/24 21:00:54]
>>494 いいじゃん。いずれ実装が出れば白黒はっきりつくんだしさ。
実装がなきゃ評価できないってんなら黙ってればいい。
漏れは、>>480 で言っているのが部分継続とどう違うのか
よくわからないんで、これ以上はコードで説明してもらいたい
(仮想OSを使ったSchemeコードで構わない) と思うけど。

コールバックで捕まえる継続は、検問所までの部分継続だと
するだけでちゃんと動くんじゃないの、ってことね。



496 名前:デフォルトの名無しさん mailto:sage [04/09/24 21:18:25]
>>480
www.ipsj.or.jp/members/Trans/Jpn/03/2001/4211/article004.html
これがズバリかな?
個人的には,
> Scheme 側では継続とコールバックの関係を気にしなくてよい
とは思えない.
完全な継続とコールバックまでの部分継続が暗黙のうちに
すり替えられるのはこわい…というか,常に意識していなければ危険だと思う.
call/ccとは別の名前で実装するんなら問題ないかな?

>>495
コールバック時に暗黙に行うって所がポイントなんじゃない?
俺は上述のようにデメリットが大きいと思うけどね.

497 名前:デフォルトの名無しさん mailto:sage [04/09/24 22:44:16]
キャッチコピーとしては魅力を感じます

498 名前:デフォルトの名無しさん [04/09/24 22:53:39]
cygwin で gauche-gl のインストールに成功した人
いませんか?
glut

499 名前:デフォルトの名無しさん [04/09/24 22:56:29]
glut 関連の関数が解決できずにmake が失敗します

500 名前:デフォルトの名無しさん mailto:sage [04/09/24 23:09:41]
そういや昔glutのインターフェースが無茶苦茶いいかげんな事に
気付いて使う気なくしたんだった。

501 名前:デフォルトの名無しさん [04/09/24 23:20:57]
ここを見る限りだと成功している人がいるみたいなんだけど・・・
やり方がわからん
ttp://www.kauda.jp/~oda/diary200404.html



502 名前:デフォルトの名無しさん mailto:sage [04/09/25 05:41:27]
>>499
うちでも普通に入ったけど。
glutはインストールしてある?
標準以外の場所に入ってたら、configureに--with-glut
オプションが必要かも。

503 名前:デフォルトの名無しさん [04/09/25 09:13:43]
>>498
成功してます
$ ln -s /usr/include/GL /usr/include/GLUT
$ ./confiugre --without-x
でいけるはず.







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<286KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef