1 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 23:58:40 ] □過去スレ□ Part21: ttp://pc11.2ch.net/test/read.html/tech/1207300697/ Part20: ttp://pc11.2ch.net/test/read.cgi/tech/1205021786/ Part19: ttp://pc11.2ch.net/test/read.cgi/tech/1200237296/ Part18: ttp://pc11.2ch.net/test/read.cgi/tech/1186922295/ Part17: ttp://pc11.2ch.net/test/read.cgi/tech/1177065699/ Part16: ttp://pc11.2ch.net/test/read.cgi/tech/1172404795/ Part15: ttp://pc10.2ch.net/test/read.cgi/tech/1151025773/ Part14: ttp://pc8.2ch.net/test/read.cgi/tech/1132275726/ Part13: ttp://pc8.2ch.net/test/read.cgi/tech/1115901841/ Part12: ttp://pc8.2ch.net/test/read.cgi/tech/1100229366/ Part11: ttp://pc5.2ch.net/test/read.cgi/tech/1091456033/ Part10: ttp://pc5.2ch.net/test/read.cgi/tech/1075630259/ Part9: ttp://pc2.2ch.net/test/read.cgi/tech/1069594582/ Part8: ttp://pc5.2ch.net/tech/kako/1058/10582/1058263391.html Part7: ttp://pc5.2ch.net/tech/kako/1042/10421/1042167213.html Part6: ttp://pc3.2ch.net/tech/kako/1031/10315/1031560687.html Part5: ttp://pc3.2ch.net/tech/kako/1023/10230/1023091882.html Part4: ttp://pc.2ch.net/tech/kako/1016/10162/1016211619.html Part3: ttp://pc.2ch.net/tech/kako/1008/10082/1008220265.html Part2: ttp://pc.2ch.net/tech/kako/1002/10025/1002584344.html Part1: ttp://piza2.2ch.net/tech/kako/987/987169286.html
91 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 15:44:27 ] >>90 犯行は単独犯によるものだということがわかっていて, 容疑者は三月ウサギと頭のいかれた帽子屋とヤマネです. スマリヤン本持っている人、原著・翻訳本では正確な問いはどんなですか?
92 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 16:08:40 ] >>91 "Did YOU by any chance steal the jam?" the King asked the March Hare. "I never stole the jam!" pleaded the March Hare. "What about YOU?" the King roared to the Hatter, (中略) "No, no!" pleaded the Hatter . "One of us stole it, but it wasn't me!" "And what about YOU?" continued the King to the Dormouse. "What do you have to say about all this? Did the March Hare and the Hatter both tell the truth?" "At least one of them did," replied the Dormouse, (中略) As subsequent investigation revealed, the March Hare and the Dormouse were not both speaking the truth. Who stole the jam?
93 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 16:29:17 ] んでもって解答 The Hatter said, in effect, that either the March Hare or the Dormouse stole it. If the Hatter lied, then neither the March Hare nor the Dormouse stole it, which means that the March Hare didn't steal it, hence was speaking the truth. Therefore, if the Hatter lied, then the March Hare didn't lie, so it is impossible that the Hatter and the March Hare both lied. Therefore the Dormouse spoke the truth when he said that the Hatter and March Hare didn't both lie. So we know that the Dormouse spoke the truth. But we are given that the Dormouse and the March Hare didn't both speak the truth. Then, since the Dormouse did, the March Hare didn't. This means that the March Hare lied, so his statement was false, which means that the March Hare stole the jam. これから逆算するに ウサギ「私は盗んでいない」 帽子屋「ウサギかヤマネのどちらかが盗みました」 ヤマネ「帽子屋とウサギの両方が嘘を言っていることはありえません」 ルール:必ず単独犯で、ウサギとヤマネの両方が真実を告げているということはありえない だ >>75 が正しいかな
94 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 16:37:43 ] >>89 お前wwなんでもかんでもxorしやがって notを使うのが怖いからヤマネが正しいことを前提にしてるのか?
95 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:51:54 ] (let ((* (amb 'usagi 'bousi 'yama))) (let ((usagi (amb #t #f)) (bousi (amb #t #f)) (yama (amb #t #f))) (when usagi (unless (not (eq? * 'usagi)) (amb))) (when (not usagi) (unless (eq? * 'usagi) (amb))) (when bousi (unless (not (eq? * 'bousi)) (amb))) (when (not bousi) (unless (eq? * 'bousi) (amb))) (when yama (unless (or usagi bousi) (amb))) (when (not yama) (unless (not (or usagi bousi)) (amb))) (unless (or (not usagi) (not yama)) (amb)) (display *) (newline) (amb)))
96 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:58:15 ] OSの操作もぜ〜んぶScheme、S式で処理してしまうなんてことできないですか? (dir 'c) なんてやると (fileA fileB fileC ...) みたいに返ってくるような。 S式で全部閉じた世界ってのを空想してます。
97 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:03:55 ] >>94 山根の証言が正しいことを前提にしてたのは、そうしないとヤマネも犯人になっちゃってたからw あと、not を使うのが怖いってどういう意味? ともかく、>>93 を参考にしてもう一回問題を読み直して、ヤマネの証言に依存しないようにした truth(Is) :- % 単独犯である Is = [ [rabbit, g], [hatman, n], [yamane, n] ] ; Is = [ [rabbit, n], [hatman, g], [yamane, n] ] ; Is = [ [rabbit, n], [hatman, n], [yamane, g] ] . rabbit_says(Is) :- % ウサギの証言 member( [rabbit, n], Is ). % 俺はやってない hatman_says(Is) :- % 帽子屋の証言 member( [hatman, n], Is ). % 俺もやってない yamane_says(Is) :- % ヤマネの証言 ¥+( ( ¥+rabbit_says(Is), ¥+hatman_says(Is) ) ). %% ウサギと帽子屋の両方が嘘を言っていることはあり得ない more_research(Is) :- % その後の調査 ¥+( ( rabbit_says(Is), yamane_says(Is) ) ). %% ウサギとヤマネの両方の証言が真実だとはあり得ない solve(It) :- truth(It), more_research(It). ?- findall(It,solve(It),All). All = [[[rabbit, g], [hatman, n], [yamane, n]]].
98 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:04:58 ] >>96 こんなの? www.scsh.net/
99 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:44:32 ] >>96 symbolicsの中古探してみるとか?
100 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:52:35 ] >>97 findallはProlog標準関数ですか? 働きがよくわかりません。
101 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:12:06 ] >>100 適当に説明すると、findall は第2引数(述語)を満たすような第1引数(変数)のリストを第3引数(変数)に束縛する。 ここでは、このプログラムがウサギが犯人であることを導くことと、それ以外の結論を導かないことを示すために使った。 ttp://www.cs.ualberta.ca/~you/courses/325/Mynotes/Log/builtin.html の "3. Finding all solutions" も参考になると思う
102 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:51:55 ] >>98 >こんなの? そうそう、そういうの。そういうのをWindowsで欲しい、作りたい。 >>99 >symbolicsの中古探してみるとか? マジに中古あったらい欲しいっす。プレミアついてるんだろうか。 性能は今のパソコンより遥かに劣るんだし、安く手に入らんかな〜。
103 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:11:57 ] connection machine がうちの研究所にあったらしいんだけど 捨てちゃったらしんだよね。俺が来るだいぶ前に。 捨てたってそれどういうことよ。 ありえないよ。 捨てるんだったら俺にくれ。
104 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:13:25 ] >>103 電気代どうするよwwWw
105 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:15:39 ] 第五世代の ψマシン、中古で放出しないかね。 たしかに電気代は心配だなぁ。
106 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:19:32 ] >>103 自宅に200V電源あるのか?
107 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:25:50 ] >>106 ブレーカ 1 個つけりゃ 200V なんてすぐとれるだろ? それとも 3相 200V が必要なのか?
108 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 21:16:06 ] >>107 途中のいろんなところに負荷が掛かるから自宅以外の工事も必要だろ常考。
109 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 22:02:19 ] >>101 d。わかりました。 solve(It)という制約条件を満たすItをバックトラック(?)して見つけて、それをAllにbag-ofする関数ですね。
110 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 22:06:52 ] (amb)と(require)と(bag-of)ってのは便利なんだね。
111 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 22:44:07 ] 200Vつったら普通三相じゃねーの?
112 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 22:50:06 ] >>111 家庭の分電盤は単相三線が多い。 普通のコンセントには 100V + 100V として供給。 エアコンには 200V (センターアース)で供給。
113 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:58:18 ] >103 特定しますた …漏れも触ってみたかった orz
114 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 01:33:58 ] >>103 ,104 通常の家屋じゃ電気代の前に床がもたんので貰っても結構高く付きそう。
115 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 08:39:43 ] Connection Machine か…。時代を先取りしすぎたよな。 チップ単体の性能向上に限界が見えつつある現代にこそふさわしい。
116 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 16:32:04 ] ベストエフォートのあのバスが先取りだってえ?
117 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 16:36:49 ] がらくたの話してる奴に一言。 「お前の話はツマラン」
118 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 16:39:40 ] >>117 さらに上を行ってどうするw
119 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 16:43:27 ] 自分にだけは甘いっていうか、 自分の書くことが悉く金言至言に思えちゃう年頃なんですよ
120 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 16:44:33 ] 今年は春が長いな。
121 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 17:43:18 ] プログラマってのはゴミみたいな奴ばっかだなw その吹き溜まり社会に行かなくて良かったと思えるスレだなw
122 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 18:52:33 ] 本質を見失って中傷することだけが正義と捉える輩にはうんざり。
123 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 19:59:11 ] 本質の話をしようぜ!
124 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 20:07:35 ] マクロが書けさえすれば、S式は本質的には必要ないです。
125 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 20:46:08 ] Far Cry!
126 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 21:17:13 ] たしかにマクロアセンブラで書ければ本質的には高級言語はいらないわけだが・・・ そんな生活に戻るのはおらまっぴらだ。
127 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 21:28:29 ] まんまんぴらぴらだ
128 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 22:06:15 ] >>126 それはまた逆の意味で極端ですね。本質wは両極端の中間に位置していると思います。
129 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 22:39:31 ] S式を超える表現を思いついたらすげーな。
130 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 01:17:55 ] >>126 今でもマクロアセンブラレベルでしか書けないマシンもあるからあんまりいぢめんな メモリさえ許せばとりあえずlisp1.0系を導入して、強引に繋いだキーボードでテスト基盤を調査とかすることはよくあると思うんだけどどう? 組み込みよりのちょっと大きめのプロダクト扱う会社だとテストでインタラクティブ環境作れるlispやもちっと小さいインタプリタを自前で持ってるよね? 少なくともおいらのしってる会社で4件はあったよ(うち2件がlispだった)
131 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 01:38:56 ] 組み込み系はGCの移植・検証がめんどくさいな
132 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 01:41:26 ] そゆ用途ならForthじゃね?実績的に。
133 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 02:24:48 ] そういえば、BASICとassemblyしか知らなかった俺に、 美しいプログラミングの世界をかいま見せてくれたのがFORTHだった。
134 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 02:50:29 ] 130です >>132 の言う通り残りの1件はforthでした、しかも、もっとメモリ制約の有った案件が10件他にあってそれは全部forth系です。 ようするに若干メモリに余力無いと採用できないのは本当です
135 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 02:52:18 ] 補足 全部で1Kワードのメモリしか無いのが残りね。 最初の4件は32Kワードあった
136 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 04:12:04 ] >>131 GCを極力使わない方法もある。 運用の仕方でGCレスも可能。 メモリも100KBもあれば余裕で動くんじゃないの。 組み込みつっても最近のは余裕あるでしょ。
137 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 09:28:07 ] >>135 それROMは別でしょ? 余裕でLisp動くじゃない。
138 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 09:29:11 ] Lispできついのはメモリ空間/ポインタの扱いじゃない? 組み込みだとアドレス空間の割り当てが、案件ごとに違うだろうし。
139 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 18:03:39 ] >>138 配列が使える状況であればどうとでもなる。 セグメントの話ならFORTHでも同じ事だし、 頻繁にreadするのでもない限りRAMもそれほど必要ない。 最終的に何かを制御するだけならGCも省ける場合がある。 どういうプロセッサできついのか具体的に 挙げてくれると判りやすいけど。
140 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 19:36:40 ] ポインタのサイズが16ビットだったり24ビットだったり そういえばdoubleは64ビットだから組み込み以外でも問題になるね
141 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 19:42:39 ] short型のコンスとlong型のコンスがあったりするの?
142 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 19:43:07 ] ttp://www.forth.org/compilers.html
143 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 20:18:26 ] >>140 難しく考えすぎじゃないのか? 組み込みでdoubleなんて使うのかね。
144 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:16:53 ] ニコスクリプトで pure lisp www.nicovideo.jp/watch/sm3452591
145 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:41:48 ] >>139 1KワードしかRAMがなければ、 組み込みシンボルオブジェクトの一部や組み込み関数の定義部は、 ROMに入れたくなるから、 > 配列が使える状況であればどうとでもなる。 は、そんな簡単にポータブルな実装にはならない。 「どうにでもなる」と言えば、どうにでもなるんだが。
146 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:45:09 ] ROMとRAMで空間が分かれてるタイプのプロセッサはちょっと使いにくいかもだな
147 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:53:50 ] >>145 お前口ばっかで全く作ったこともないだろ。 1ワードだから何だよ。それが仕事なら作るだろ。 むしろそんな環境でLispに出番があるのか疑問だが。
148 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:54:52 ] Kが抜けてたw まあそういう事。
149 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:12:36 ] 横レススマソ。 1984年ごろのパソコンが128kぐらいだったのを考えると 最近の組み込みなんてメモリサイズが大きいという希ガス。 で、1kワードRAMって何に使うの?
150 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:19:18 ] >>143 組み込み 以外 でも、と言ってる doubleのようにポインタのサイズより大きいオブジェクトは 間接参照やメモリ割り当てで遅くなるだろ?
151 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:21:35 ] >>150 普通のLispの処理系一般に当てはまる問題だが、そういう一般的な話がしたいの?
152 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:19:08 ] ところで、横槍を入れるときはそう言うべきなの?
153 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:33:27 ] >>150 >>140 の「そういえば」はどこに掛かるんだよ。酔っ払いか? で?間接参照で遅くなるから何すか?
154 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 05:10:09 ] >>152 特定の二人だけであまりに必死な会話を展開してるときは そう言いたくなることもある。たまに。
155 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 05:14:49 ] >>147 がなんでかみついてるのかいまいち把握できん 元の書き込みも1Kワードのマシンじゃforthだって書いてるじゃん(っていうか他に選択肢あるのか1Kで)
156 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 07:22:55 ] だから、それが何なんですかね?forth大好きおじさん。 lispスレに何の御用ですか?
157 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 07:48:17 ] 自分じゃ頭は良いけど性格が悪いキャラのつもりで 単に頭が悪いキャラなのは勘弁して欲しいなぁ
158 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 07:51:53 ] どちらかと言うと、気に入らない書き込みしてるのが1人に見えてしまう法則発動かと。
159 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 08:30:20 ] MindStormsで動く湯浅先生のLispってどう? 使った人いる?
160 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 12:07:40 ] GaucheでLittle Schemerにのってる以下の関数を実行すると、 メモリ以上に食って終わらなくなるのですが。 (define add1 (lambda (n) (+ n 1))) (define A (lambda (n m) (cond ((zero? n) (add1 m)) ((zero? m) (A (sub1 n) 1)) (else (A (sub1 n) (A n (sub1 m)))))))
161 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 12:11:48 ] そうでしょうね
162 名前:163 mailto:sage [2008/05/27(火) 12:16:03 ] >>161 私、何か間違ってますでしょうか?
163 名前:163 mailto:sage [2008/05/27(火) 12:34:36 ] 163
164 名前:へだま ◆7JLFh7E/wI mailto:sage [2008/05/27(火) 12:34:56 ] >>162 ttp://mathworld.wolfram.com/AckermannFunction.html このへんの記事が御参考になればよいのですが
165 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 12:42:26 ] すまそん、wikipedia.jp見てました。計算量が爆発する関数なんですね。 どうもです。
166 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 13:48:49 ] アッカーマン関数なんて懐かしいな
167 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 16:17:25 ] タイムボカンシリーズか。懐かしいよな。
168 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 17:46:00 ] >>140 Pointer(Address Reg)のサイズが 16bits って 8BitsMPU とかだよね? メモリー空間が64Kの世界かぁ。うむむ。
169 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 18:35:29 ] >>168 たまには8086も思い出してください(個人的には嫌いだがw)
170 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 19:02:48 ] あの変態的な「セグメントと称する物」は2度と見たくないw
171 名前:デフォルトの名無しさん [2008/05/28(水) 07:53:43 ] Windows環境でGaucheでCGIプログラミングをしようとしているのですが #!E:/Gauche/bin/gosh.exe (display "Content-Type: text/plain;\n\nHello, Gauche!\n") と書くとInternalServerErrorが出ます。 goshのパス自体はこれで正しいのですが、何かやり方を間違っている所があるでしょうか? 初心者質問ですいません。
172 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 08:05:14 ] >>171 まずHTTPサーバのログを確認。 つぎにコマンドプロンプトで C:\foo> E:\Gauche\bin\gosh.exe bar.cgi とかやってみる。これで動くなら設定が悪い。
173 名前:デフォルトの名無しさん [2008/05/28(水) 10:41:42 ] サーバーのログ見たら Premature end of script headers: mb.cgi *** ERROR: cannot find file "./D:/ws/hp/scheme/mb.cgi" to load との事。 プログラムのあるフォルダで、コマンドプロンプトで動作させたときはきちんと動きますが gosh "プログラムの絶対パス" とすると同じエラーが返るのでこれが原因のようです。 もうちょっと頑張らないと…
174 名前:デフォルトの名無しさん [2008/05/28(水) 11:04:50 ] 解決いたしました goshの引数で「-l」付けたら行けました ご助言ありがとうございます。 #!E:/Gauche/bin/gosh.exe -l (display "Content-Type: text/plain;\n\nHello, Gauche!\n")
175 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 21:10:25 ] TI-Explorerって面白そう。他に情報ないかな? ttp://cadr.g.hatena.ne.jp/g000001/?word=*%5BLisp%E3%83%9E%E3%82%B7%E3%83%B3%5D
176 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 21:16:53 ] こことか ttp://victor.se/bjorn/lispm.php
177 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 21:28:42 ] ttp://www.unlambda.com/cadr/index.html
178 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 21:32:51 ] マニュアル(PDF) ttp://www.bitsavers.org/pdf/ti/explorer/
179 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 21:39:31 ] メモリ8Mで68020か。ハードはMacintosh II と同等ぐらいだな。時期的にもかぶってる。
180 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 00:27:16 ] MacIvoryとかELISとかって、手に入らないのかなぁ。
181 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 12:32:08 ] TAO/ELISのソースコードは公開できないのかねえ ICOTはKL1 UNIX版その他を公開したから、 まだ研究が続いているものもあるのにねえ www.icot.or.jp/ARCHIVE/Museum/IFS/about-IFS-J.html NTTは今や私企業だから難しいかね
182 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 18:39:36 ] ソースクレ厨がうざくて・・ というか、正式に依頼するなり手順踏めば手に入るものだよ。
183 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 20:46:09 ] continuationについて教えてください.(下にコードを添付します) case-Aは常に同じ状態からのcontinuation再開となるのに対し, case-Bは前回の結果を反映したcontinuation再開となります. continuationが生成されたときの状態をそのまま保存したものであり continuationが呼び出されるとその状態が復元されて続きの評価が行われる という理解からするとcase-Bの結果が理解できません. 前回のcontinuation呼び出しの影響はどこに記録されるのでしょうか.
184 名前:183 mailto:sage [2008/05/29(木) 20:46:54 ] ;;;case-A (define continuation #f) (let loop ((counter 0)) (write counter) (if (< counter 3) (begin (if (= counter 1) (call-with-current-continuation (lambda (k) (set! continuation k)))) (loop (+ counter 1))) ;;ここが違う 'finished)) ;==> 0123finished (continuation #t) ;==> 23finished (continuation #t) ;==> 23finished (continuation #t) ;==> 23finished
185 名前:183 mailto:sage [2008/05/29(木) 20:47:30 ] ;;;case-B (define continuation #f) (let loop ((counter 0)) (write counter) (if (< counter 3) (begin (if (= counter 1) (call-with-current-continuation (lambda (k) (set! continuation k)))) (set! counter (+ counter 1)) ;;ここが違う (loop counter)) ;;ここが違う 'finished)) ;==> 0123finished
186 名前:183 mailto:sage [2008/05/29(木) 20:49:13 ] [case-Bが途中で切れてしまいました.] [case-Bの続き] (continuation #t) ;==> 3finished (continuation #t) ;==> 4finished (continuation #t) ;==> 5finished
187 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 21:18:32 ] >>183 case-Bの場合で説明すると、continuationはcounterが記録されている位置だけを覚えていて、その値を覚えているわけではない。 なのでset!をすると次回は前回にセットされた値が読み出されるのでそのようになる。 って感じでいいのかな?
188 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 21:23:58 ] 状態が「復元され」るわけじゃなく、とっておいたそれにスイッチするだけ。 MLをちょろっと勉強して、Schemeの破壊的に変更する変数は MLではセルになるんだと考えれば理解が早いと思う。
189 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 21:33:32 ] MLをちょろっと勉強しにいくのはいいんだけど・・・ ちゃんと帰ってきてくれよな! ラムダの門が君を待ってるよ〜(w
190 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 21:35:21 ] これは意見が分かれるところで、 C言語を学んでスタックフレームを理解すれば早いという説もある。
191 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 21:56:00 ] 継続で保存した状態から再開したければクロージャを使うべきだと思うけど、その例では使ってない。 保存した状態(つまりクロージャ)をスタックしてバックトラックする例を勉強すればどこが違うか理解できるだろう。 非決定性とか論理プログラミングを探して読んでみると良いと思う。