1 名前:デフォルトの名無しさん [2007/08/12(日) 21:38:15 ] 過去スレ 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
357 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 04:35:21 ] すいません 巡回じゃなくて循環ですた
358 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 05:55:18 ] >>356 srfi なので一般的って言っていいんじゃないでしょうか。 srfi.schemers.org/srfi-38/srfi-38.html common lisp 由来ですね。 www.lispworks.com/documentation/HyperSpec/Body/02_dhp.htm
359 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 08:28:49 ] あ、SRFIにあるんすね。 こういうのって、相互参照してる場合どうなるのかなと。 (define x (list 'a 'b)) (define y (list 'c 'd)) (begin (set-cdr! (cdr x) y) #t) (begin (set-cdr! (cdr y) x) #t) (write-with-shared-structure x) #1=(a b c d . #1#) (write-with-shared-structure y) #1=(c d a b . #1#) やっぱこうなるか。 write-with-shared-structureで各々の変数を保存して、 後でread〜で取り出せるかなと思ったんですが、 共有関係が消えてしまいますね。 (define x '#1=(a b #2#)) (define y '#2=(c d #1#)) みたいな事は可能なのかな。 完全に構造を保存する場合はセルをダンプするしかない?
360 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 08:37:11 ] (define x '#1=(a b . #2#)) (define y '#2=(c d . #1#)) の間違いです。 参照先が全部確定するまでread-with-shared-structureは結果を 保留する必要があるし、write〜も一度に関係するリストを全て渡すか しないと無理だから、このサンプルみたいなインターフェースじゃ無理ですね。
361 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 11:47:08 ] Lisper&Schemerの誰か、異論・反論よろしく pc11.2ch.net/test/read.cgi/prog/1190731526/311 311 名前: 仕様書無しさん [sage] 投稿日: 2007/10/07(日) 02:56:19 > ではメッセージをちゃんとメッセージ(オブジェクト)として実装している言語はないか > というとそんなこともなくて、古くは、メッセージングのOOの影響を受けて作られた 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 > ACTOR という言語(これは、メッセージングのOOから派生したアクター理論に基づいて 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 > 作られました)では、メッセージもちゃんとオブジェクト(ACTOR ではアクターと呼ぶ)で 〜〜〜〜〜〜 > 表わされていましたし、最近の言語なら Io という言語で、同じくメッセージは > 実体のあるオブジェクトとして内部的にも表現されている、という例があります。でも希有です。
362 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 11:57:52 ] Racter懐かしいな。「警官の髭は完成半ば」だっけ?
363 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 12:04:14 ] 昔は「OOを思想からマスターしてオッサン技術者共を超えてやるぜ!」 とか思ってた。 で、CLOS勉強したら結局OOって単なるメソッドディスパッチなのね、 と思って萎えた…。
364 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 14:11:37 ] CLOS の記法は即物的で夢が無い
365 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 14:27:34 ] マルチプルディスパッチの夢は見ないのか?
366 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 14:36:43 ] >>364 だが、そこがいい
367 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 14:54:14 ] 夢は無くとも簡潔さがある!効率がある!自由度がある! …なんかLispが人気にならない理由が分かった気がする。
368 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 15:13:32 ] >>365 夜は:around methodに包まれて寝る。
369 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 16:19:38 ] 人気がないのは新しくないからじゃね?
370 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 17:19:05 ] >>238
371 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 19:47:44 ] 関数名で処理内容がわかりづらいのはどうにかしてほしいな ○○*とかprincとかprin1とか
372 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 19:54:56 ] まあそこらへんは……歴史が長い言語だからねぇ
373 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 19:58:52 ] OOは、実用的には呼び出し元の再利用と考えると良いと思う。
374 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 21:07:49 ] 実用的には特に何も考えなくて良いだろう。
375 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 23:46:23 ] Lisp使えるからってオブジェクト指向がばっちりなわけでも無ければ、 SICPをちゃんと読んだわけでも無さそうだね。
376 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 00:01:47 ] >>375 おれはオブジェクト指向バッチグーだけど、 SICPにオブジェクト指向なんてあったっけ?抽象化はあったけど。
377 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 00:17:14 ] >>376 「〜でもなければ〜でもない」の意味も分からないのか
378 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 00:38:54 ] >>377 自分の句読点の位置を見直しましょう。
379 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 00:45:04 ] 、< もうやめて!わたしの為に争わないで!
380 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 08:18:46 ] このタイミングでSICPを持ってくるのか schemeキチガイは黒板と現実の区別がつかないのな
381 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 09:01:58 ] 高度に発達した黒板は現実と区別がつかない。
382 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 09:35:14 ] オーオー、お前等楽しそうじゃん#AA略
383 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 10:25:39 ] >>380 はLisp>schemeって考えてんのか?
384 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 10:28:45 ] 不等号キター!
385 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 10:50:05 ] schemeとLispはイスラム教とキリスト教の関係なのか?
386 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 10:57:37 ] >>383 コンピュータで動かすことを考えればね。 黒板上なら別にそんなことはないと思う。
387 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 11:47:26 ] >>383 中置記法か。お前Lisperじゃないな
388 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 12:12:42 ] なんかこういう www.prescod.net/xml/sexprs.html 事を言っている人が居るみたいなんですが、 どうも的外れな気がするんですが… 皆さんどう思われますか?
389 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 13:28:54 ] CommonLispは土方専用だろ 洗練された知的階級の為のSchemeと同じスレで扱う事自体がおかしい
390 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 13:30:57 ] schemeはpythonとかと同じで教育用っつーかお試し用っつーかそういうもんだろ
391 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 13:33:41 ] ↑土方乙。しかもPythonすら理解できてないのかwwwww
392 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 13:36:58 ] Common Lisp: 土方歳三 Scheme: 原田左之助
393 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 13:38:58 ] 洗練された知的階級なんて言葉で自己言及した時点で洗練された知的階級じゃないよ! ってことを身をもって明らかにするschemerならではの反面教師的教育なのです
394 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 13:40:05 ] 教育用の言語使ってる割には頭悪そうだな
395 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 13:43:36 ] これから教育を受ける段階にある奴ってことだからね。
396 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 13:45:45 ] 教育すら受けられない中卒Common Lisper
397 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 13:52:34 ] そもそも >>389 は Common Lisp も Scheme も使った事が無いんだから 放っといたら良いじゃん
398 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 15:13:52 ] つれないこというなよ
399 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 15:45:11 ] >383 仕様のサイズ的には合ってね?
400 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 15:49:15 ] SchemeはR6RSでかなり分厚くなったと聞いたが
401 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 16:51:33 ] それだけ不純になったのよ
402 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 17:19:43 ] >>388 斜め読みしただけだけど、やってることは S 式の標準的な書式の見た目を XML 文書と比較してるだけなのかな。 だとすると > XML is not S-Expressions このタイトルは不適切だな。
403 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 17:33:39 ] S式はCSVみたいにRFCに定義されたりしないの?
404 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 17:37:24 ] ISLISPがRFCになってなかったっけ?
405 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 17:59:10 ] ISLISPって全然はやってないんだなw
406 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 19:11:14 ] >>392 Mormon Lisp (Ruby): まつもと ゆきひろ
407 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 20:28:44 ] CommonLisp+末尾最適化+継続 = 大方のSchemerは文句いわない Scheme - 末尾最適化 - 継続 = 粗大ゴミ
408 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 20:42:00 ] つまり素のLISPはゴミって事?
409 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 20:42:29 ] CL = RedHat Linux Scheme = Plan9 てな感じ
410 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 20:44:23 ] 今となっては RHL はあんまりw
411 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 20:46:58 ] >>408 そりゃCommonLisp以前に戻るんだからしょうがないべよ その他大勢の方言の一つでしかないんだもの。
412 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 21:06:18 ] CommonLISPは分別ゴミ
413 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 21:11:16 ] >>408 素のLispはただの理論だからなぁ。 道具として便利であるためには、当然肉付けが必要になるよ。
414 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 21:26:50 ] クロージャすらないようではゴミと言われてもしかたあるまい
415 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 21:28:27 ] >>414 ?
416 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 21:35:07 ] >>414 つ FUNARG
417 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 21:43:34 ] CL = スイスアーミーナイフ Scheme = 肥後の守
418 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 21:49:56 ] Lispとかけてイケメンととく。
419 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 22:03:51 ] その心は、 「かっこが大変よろしゅうございますw」 とかヌカスつもりじゃないだろーな?
420 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 22:12:48 ] あーそれ俺が言おうと思ってたやつなのに・・・ひどい
421 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 22:23:18 ] むしろ「カッコばかりで中身がありません」じゃないのか?
422 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 22:25:16 ] でも簡単にペアになれるんだぜ?
423 名前:デフォルトの名無しさん [2007/10/08(月) 23:37:14 ] 少数点以下多数ある数値少数第1位までにして、切り上げして出力する方法ってある? 20.767841011743453→20.8 処理系はgaucheで。
424 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 00:09:52 ] ほんとにそれだけしたいなら(10進で)10倍してceiling(かな?)でいいんとちゃう? 単純でわかりやすいし。
425 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 00:29:55 ] >>422 うまいこと言うなあ
426 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 21:15:28 ] >>422 ウホッ
427 名前:デフォルトの名無しさん [2007/10/09(火) 23:32:08 ] >>424 ありがとうございます。出来ました。 もうひとつ同じような内容ですが、 例えば、-1.0という答えを-1.000という回答に小数点以下第3位まで出す場合はどうすればよろしいですか? やはりgaucheで
428 名前:デフォルトの名無しさん mailto:age [2007/10/10(水) 00:10:43 ] www.premiumtv.12gbfree.com/?RTV+4514/ChuckBraman/JazzPlayer
429 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 00:17:47 ] >>406 Moron Lispだと思った。
430 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 00:25:30 ] どうでもいいけど、S式でXML表現するときって名前空間はどうすんの?
431 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 00:27:11 ] >>429 それも正解。
432 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 00:49:07 ] >>427 かなり無理やりっぽいが… (define (hoge kazu keta) (let ((b (exact->inexact kazu)) (c (string-length (number->string (inexact->exact (round kazu)))))) (format #f "~v,,,'0,a" (+ c keta 1) b))) (hoge 1 3) もっとまっとうな方法がありそうな気がする
433 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 00:51:38 ] それってformatでパッとできないの?
434 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 01:18:31 ] >>430 コモンリスプならパッケージで桶
435 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 01:34:06 ] >>434 返信ありがとう。 URNとかも平気なのかな。 まあ、完全な同値変換はできないだろうけど。勉強してみる。
436 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 02:06:07 ] こんな表現にすればぁ (tag :namespace (...) :attribute (...) :nodes (...))
437 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 05:10:29 ] >>430 A Lisp Based XML Parser ・LXML parse output format franz.com/support/documentation/8.0/doc/pxml.htm#lxml
438 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 05:14:27 ] 追加 opensource.franz.com/xmlutils/
439 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 12:19:10 ] このスレを見ている人はこんなスレも見ています。(ver 0.20) Bart's PE Builder スレッド 5枚目 [Windows] 懲りずに騙されて花火板にまで飛ばされたわけだが3 [花火] 【CFNM】ちんちん見〜ちゃった☆Part14【えっ〜!】 [game12tr] uim スレッド 7 [Linux] 2ch特化型サーバ・ロケーション構築作戦 Part26 [2ch運用情報]
440 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 18:12:43 ] >>19 > Schemeで書かれた正規表現ライブラリ > ttp://www.cs.rice.edu/~dorai/pregexp/pregexp.html www.ccs.neu.edu/home/dorai/pregexp/pregexp.html
441 名前:デフォルトの名無しさん [2007/10/14(日) 21:19:32 ] gaucheのGauche-mingw-0.8.11+meadow使ってるんですが、日本語の扱いが上手くいきません。 (print "こんにちは") だと 縺薙s縺ォ縺。縺ッ って出てしまう。 どのようにすればよろしいでしょうか?
442 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 21:59:28 ] 文字コード
443 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 23:04:31 ] >>441 set-buffer-file-coding-systemとset-buffer-process-coding-systemで設定。 どっちかっていうとemacsの設定の話だな。
444 名前:デフォルトの名無しさん [2007/10/15(月) 18:23:55 ] 文字列が定義されてるとき、その文字列の組み合わせを列挙して、その数も表示する関数(com k seq)を作ってます。(setq abcd (list 'A 'B 'C 'D))として、たとえば(com 3 abcd)を評価すると、 (ABC) (ABD) (ACD) (BCD) 4 となります。 先頭を選んで残りからk-1個選ぶ。先頭を選ばず残りからk個選ぶ。というのを再帰で書けば出来そうというのは考えたんですが、うまくかけません。習ってるのはdefun cond if cons car cdr print list null setqとかで、これだけで書きたいです。 また要素のi番目を調べる関数(ith seq i)と、2つのリストを結合する関数(merg seq1 seq2)、リストに一つの要素を加える関数appは以前に作ってて、これは使えます。 どなたか教えてくれませんか?
445 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 20:27:47 ] >>444 Common Lisp 入門スレにヒントがでてたよ。どのくらいまで自力でできたの?
446 名前:デフォルトの名無しさん [2007/10/15(月) 21:44:49 ] うーん。いろいろ書いてみたんですが、うまく書けなくて…
447 名前:444 [2007/10/15(月) 23:46:07 ] (defun top (seq tmp) (print (app tmp (car seq))) (cond ((null (cdr seq)) ) (T (top (cdr seq) tmp))) (setq tmp NIL) ) (defun comb (seq k) (cond ((= k 1) (top seq tmp) ) ((null (cdr seq)) ) (T (setq tmp (list (car seq))) (comb (cdr seq) (- k 1)) (comb (cdr seq) k) ))) >(comb abcd 2) (A B) (A C) (A D) (B C) (B D) (C D) K=2のときはうまくいくんですが、3以上のときがうまくいかなくて・・・ どうしたらいいのか・・・・
448 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 00:05:16 ] (defun comb (seq k) (setq tmp NIL) (comb2 seq k tmp) ) (defun top (seq tmp) (print (app tmp (car seq))) (cond ((null (cdr seq)) ) (T (top (cdr seq) tmp))) ) (defun comb2 (seq k tmp) (cond ((= k 1) (top seq tmp) ) ((null (cdr seq)) ) (T (setq tmp (app tmp (car seq))) (comb2 (cdr seq) (- k 1) tmp) ))) こうしたら (ABC) (ABD)はでるようになりました。 先頭を選ばず残りからk個選ぶ部分がうまくできません。
449 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 00:22:15 ] (comb '(a b c d) 3) => ((a b c) (a b d) (a c d) (b c d)) みたいな関数を作って表示は別にしたほうがいいかもしれんね
450 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 00:26:24 ] >>449 一応表示は top関数で表示してます。 (defun comb (seq k) (setq tmp NIL) (comb2 seq k tmp) ) (defun top (seq tmp) (print (app tmp (car seq))) (cond ((null (cdr seq)) ) (T (top (cdr seq) tmp))) ) (defun comb2 (seq k tmp) (cond ((= k 1) (top seq tmp) ) ((null (cdr seq)) ) (T (setq tmp (app tmp (car seq))) (comb2 (cdr seq) (- k 1) tmp) (comb2 (cdr seq) k NIL) )) としました。
451 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 00:26:55 ] 結果は [37]> (comb abcd 3) (A B C) (A B D) (C D) (B C D) T [38]> (comb abcde 3) (A B C) (A B D) (A B E) (C D) (C E) (D E) (B C D) (B C E) (D E) (C D E) T ここまでなんとかなりました。 あと先頭要素が加わってないやつに加えられれば良いんですが・・・・
452 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 00:27:48 ] comb2定義の最後の括弧が抜けました・・・
453 名前:デフォルトの名無しさん [2007/10/16(火) 00:44:01 ] >>449 読み違いました。そういう手もありですね。 しかしどうやるのか・・・
454 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 01:02:20 ] まず紙にでも書いて整理しろよ 頭で想像できてない事をプログラムできるわけないだろ
455 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 01:05:14 ] 紙にも書いてみましたが>>450 のやつから進みません・・・
456 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 01:15:28 ] 紙に書いても判らんなら、もう一度単純ケースの把握からやってみれば? ABC 2のケースとか。 あと、リスト処理と考えるより単純な集合の比較の問題って思った方がいいぞ。 carとかnullとかリストオペレーターをそのまま使うんじゃなくて 問題に適合するように抽象化してみるとか。
457 名前:デフォルトの名無しさん [2007/10/16(火) 01:28:25 ] ABC 2 だったら A選ぶ場合 B選ぶ場合 AB B選ばない場合 AC A選ばない場合 B選ぶ場合 BC B選ばない場合 なし って感じですよね?でもプログラムだとうまくいかないんですよねぇ。