- 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
- 528 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 16:27:08 ]
- いちいちcarとかcdrみたいな「処理」で取り出させるのが前時代的なんだよなー
LISt Processorなのにパターンマッチが標準で無いってどういうことよ
- 529 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 16:28:49 ]
- >>528
簡単に作れるからでは?
- 530 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 16:31:19 ]
- >>529
簡単に作れるものほど言語が準備すべきだと俺は思う。 そうでないと人によってそれぞれの実装ができてしまって 言語の「中に」バベルの塔ができちゃうからね(実際Lispはそうなっちゃってるのでは?)
- 531 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 16:35:42 ]
- パターンマッチこそが言語内言語なんだよね。
汎用のパターンマッチを使うよりも効率的な専用マッチャーが簡単に書けるから、 必要性が低いのだ。正規表現があまり使われないのも、だいたい同じ理由だ。
- 532 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 16:40:44 ]
- 処理系毎の拡張で用意されてるでしょ
- 533 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 16:43:07 ]
- 汎用のPrologインタプリタでさえ、Lispなら100行くらいで書けるからなあ。
- 534 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 16:44:27 ]
- >>528
君の考える「パターンマッチ」の具体的な仕様と使用例を示してくれると、 より有意義な議論ができると思う。
- 535 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 17:51:19 ]
- パターンマッチって分岐と分解を同時に行う処理だと思ってる
大抵は分岐の内容に応じてリストを分解するから一度に処理するのは適切な抽象化なはず 下にリストの内容を1だったら2、2だったら5、それ以外だったらそのままにして変換する関数を 書いてみたがどうみてもパターンマッチ版の方がわかりやすい(どうやってパターンマッチを実装するのかは しらないけど。あとmap使えというのは禁句) みんなのLispプログラムもみなおしてみたらパターンマッチを使った方がスッキリする部分が多くあるのでは? このスレにもパターンマッチを「ふわふわしたおまけ」としかみなしてない人が結構多いと思うから 俺のレスがパターンマッチを使うきっかけになってくれれば幸いだ。 (defun (hoge lst) (cond ((eq (car lst) 1) (cons 2 (hoge (cdr lst)))) ((eq (car lst) 2) (cons 5 (hoge (cdr lst)))) ((and (not (null? lst)) (list? lst)) (cons (car lst) (hoge (cdr lst)))) (else nil))) (defun (hoge lst) (pm lst ((| 1 xr) (cons 2 (hoge xr))) ((| 2 xr) (cons 5 (hoge xr))) ((| x xr) (cons x (hoge xr))) (else nil)))
- 536 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 17:59:53 ]
- >>535
後者が簡潔だが、前者が判りやすい。おそらく効率は前者が勝る。 「ふわふわしたおまけ」とは思わないけど、言語の中に別の言語を導入するような 気持ち悪さは感じる。 まあ好きな人は使えば良いのでは?という程度かなあ。
- 537 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 18:20:59 ]
- >>535
CL?Scheme?
- 538 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 18:27:26 ]
- 俺パターンマッチ入りの俺Lisp言語だろw
- 539 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 20:20:34 ]
- パターンマッチはなじむと便利
可読性とかは知らんけど
- 540 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 20:22:11 ]
- まあ関数型言語だとおなじみ
- 541 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 20:25:28 ]
- 頑張れば CLtL3 に入れてもらえるかもw
- 542 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 20:28:51 ]
- 535のプログラムみて思ったんだけど
Listだけどnilじゃないのを一発で判別する関数ってないんかね
- 543 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 21:05:06 ]
- consp
pair?
- 544 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 21:41:28 ]
- 来月「Practical Common Lisp」の訳書が出るっぽい
www.bk1.jp/product/02997001
- 545 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 21:47:48 ]
- >>544
原著よりも安いのか。 園城さんって、LispUser.netの人ですね。
- 546 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 21:54:10 ]
- >>543
「List」だけどnilじゃない
- 547 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:37:44 ]
- >>528
いろいろな人が考えたけど、 S式とうまくマッチするのがないってのが現状。 これだけ時間がかかって見つからないからないんだと思う。 define-syntaxは一部カバーしていると思うが。
- 548 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:57:14 ]
- CLOSがパターンマッチみたいなものだと思うのですが
- 549 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 23:32:04 ]
- >>547
昔から、 (match '(a b . c) '(1 2 3 4 5)) =>((a 1) (b 2) (c (3 4 5))) (match-let (a b . c) '(1 2 3 4 5) (list a b c)) =>(1 2 (3 4 5)) みたいなのや、prologのunification辺りはほとんどの人間が 自分の物を持ってると思うけどな。 こういうのをマクロにしてパターンを定数で取れば特殊化もできる。 今は組み込みにするのが流行だろうけど、 LISP系ならパターンマッチはライブラリで自然に実装できる範囲だから、 あえて入れなかったのでは。
- 550 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 23:39:31 ]
- >>546
nilは「List」だけど。 おまいのListの定義がおかしいだけ。 素人増えましたな。
- 551 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 23:46:00 ]
- Listだけどnilじゃないのを一発で判別する関数
(define (non-nil-list? x) (and (not (null? x)) (list? x))) が組み込みであるか?てことでしょ。 これはSchemeのコードだけど。 コンスとリストを混同してるのでは?
- 552 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 23:55:31 ]
- (and (consp x) (listp x))を一発で判別したい
↓ conspだけでいいのでは ↓ よくない ↓ ?←今このへん
- 553 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 23:56:48 ]
- 自分で述語用意すればいいじゃん・・。
- 554 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 00:04:15 ]
- 点対神経症だろw
- 555 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 00:07:37 ]
- CLの listp (点対でも真)とSchemeの list? (点対だと偽)の差が混乱を招いているのでは?
- 556 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 00:25:34 ]
- >>535みたいなどこかの俺言語で育っちゃった人は
一度まじめにどっちかで矯正した方がいいよ。
- 557 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 00:34:25 ]
- 狼に拾われたがパンダに育てられて観賞用に
- 558 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 02:00:34 ]
- どっかってどこ?
MITとかUCBあたり??
- 559 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 02:02:26 ]
- このスレとかでいいんじゃね?w
- 560 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 02:07:30 ]
- 535の脳内のどこか
- 561 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 02:30:21 ]
- >>556
これから独学でLisp習おうと思ってる。 今までプログラミング言語を真っ当に習ったことはなくUNIXのBシェルスクリプトが ちょっと使えるくらい。 こんな自分が、あとから矯正の必要がないように正しく学ぶためにはどうすればいいですか?
- 562 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 02:35:00 ]
- >>561
訳書は見てないけど >>544 なんて良いんじゃないかな。 実用的な例題で勉強できるから飽きないと思うよ。
- 563 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 02:37:43 ]
- >>561
わたしゃ独学でCLを学んでたけど、 定番の本だけはきっちり抑えておくとそこから、書き方を学ぶことができるよ。 もちろん、本に載ってなくって、知っておいたほうがよい方法やスキルというのも あるけど、それは実際に勉強会などを通じて人とのコミュニケーションをとっていく 事からだと思うな。 別に俺様言語でもいいけどさ。矯正は必要な場合はあるけど、実際に回りにschemer がいるかといえば別の問題があるからね。その点は指摘してる>>556というのは 恵まれた環境を持っているといえるね。最近はハブサイトもできつつあるから、 独学者にとってもよい時代がくると思うよ。shiroさんのサイトみたいに人が集まってるとこ ろは自分から積極的に恵まれた環境を作るきっかけにはなるよ。
- 564 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 02:40:26 ]
- 定番ってのは、ANSI Common LispやPractical Common Lisp, PAIPあたりだけど。
オンラインのみで流れているスタイルに対してのよいドキュメントは 先日g000001さんたちがやっていたNorvig and Pitman 1993 (和訳あり)をよんで みればいい。
- 565 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 02:48:07 ]
- www010.upp.so-net.ne.jp/okshirai/tutorial-on-good-lisp-programming-style-ja.txt
これね。これはcommon lispの師匠に進められた文章でもあります。テンプレに含めて もいいと思う。
- 566 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 02:51:18 ]
- >>544
ktkr
- 567 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 07:33:49 ]
- >>562-565
thx!
- 568 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 07:37:36 ]
- >>565
その文章はとてもいいよね。 でもおれdeftype使ったプログラムあんまり見たことないんだけど気のせい?
- 569 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 09:50:06 ]
- >>568
> でもおれdeftype使ったプログラムあんまり見たことないんだけど気のせい? たしかにみたことがない。 あまりないのはしかたがないかも。 typecaseで場合分けすることや型宣言前提だろうし。
- 570 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 13:55:21 ]
- 俺は情報隠蔽はpackage, CLOSの仕事と割り切ってる。
だから使ったことない。> deftype
- 571 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 14:24:51 ]
- >>570
微妙にわかるような、わからないような…。 でも、棲み分けだよね。
- 572 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 17:00:48 ]
- >>565
この文章は俺もよく参考にさせてもらいました。ちなみに原文(英語)はこちら。 www.cs.umd.edu/~nau/cmsc421/norvig-lisp-style.pdf
- 573 名前:546=551 mailto:sage [2008/06/13(金) 23:36:37 ]
- >>555
なるほど。私が不勉強でした。 >>550 失礼しました。
- 574 名前:デフォルトの名無しさん [2008/06/13(金) 23:57:48 ]
- で、結局Cuspは使えるのか?!
- 575 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 01:09:21 ]
- こういうこと?
(list? '(1 . 2)) ;=> #f (list? '()) ;=> #t (define (listp x) (and (not (null? x)) (pair? x))) (listp '(1 . 2)) ;=> #t (listp '()) ;=> #f
- 576 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 01:14:50 ]
- (list? '(1 2)) ;=> #t
(listp '(1 2)) ;=> #t
- 577 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 05:38:16 ]
- まだ理解できてないじゃん
最初からおさらいしたら?
- 578 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:07:37 ]
- (list? '(1 . 2)) ;=> #f
(list? '()) ;=> #t (list? '(1 2)) ;=> #t (define (listp x) (and (not (null? x)) (pair? x))) (listp '(1 . 2)) ;=> #t (listp '()) ;=> #f (listp '(1 2)) ;=> #t (define (non-nil-list? x) (and (not (null? x)) (list? x))) (non-nil-list? '(1 . 2)) ;=> #f (non-nil-list? '()) ;=> #f (non-nil-list? '(1 2)) ;=> #t
- 579 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:20:00 ]
- (define (nil-list? x)
(not (non-nil-list? x))) (nil-list? '(1 . 2)) ;=> #f (nil-list? '()) ;=> #f (nil-list? '(1 2)) ;=> #t
- 580 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:21:54 ]
- 間違えた>>579
(nil-list? '(1 . 2)) ;=> #t (nil-list? '()) ;=> #t t (nil-list? '(1 2)) ;=> #f
- 581 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 12:11:14 ]
- DrScheme ver.4.0キタワ
- 582 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 12:24:12 ]
- plt-scheme.org/tour.html
- 583 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 12:58:53 ]
- >>578-580
いちいち無意味なもん貼るな。 自由帳はこちら。>>8
- 584 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 13:06:37 ]
- >>583
初心者に向かって「いちいち」とか書き込んでるオマエの方が「いちいち」ウザイw
- 585 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 13:07:38 ]
- 初心者は放って置けば消えていくJK。
- 586 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 13:21:11 ]
- 「On Lisp」の「第16章 マクロを定義するマクロ」スゲー
- 587 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 14:49:14 ]
- >>586
その気になれば作れるようになるよ。:-)
- 588 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 16:10:43 ]
- >>265のambをlet-syntaxするマクロを書いたら、`...' が衝突した
codepad.org/FhFcRNhU こうですか?わかりません! codepad.org/DOhmrD4x
- 589 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 16:53:50 ]
- >>588
codepad.org/DsQGNTC2
- 590 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:20:05 ]
- >>589
おお PLTの拡張かと思ったがR6RSに書いてあった。thx
- 591 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:33:58 ]
- 【産学連携】京大と日本IBM、大規模交通社会シミュレーションシステムを開発[08/06/11]
news24.2ch.net/test/read.cgi/bizplus/1213353215/ ttp://pc.watch.impress.co.jp/docs/2008/0611/ibm.htm このシステムで使われてるシナリオ記述言語Qの説明を見ると、Dr.Scheme版が有る。 ttp://www.ai.soc.i.kyoto-u.ac.jp/Q/system_j.htm
- 592 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 21:34:24 ]
- Dr.Scheme ver.4.0ってset-cdr!が使えないの?
- 593 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 23:12:54 ]
- >>592
ver372までset-cdr!が使える。 pre399ぐらいでは使えなくなってた。ver4.0は400に相当してるはずで使えないと思う。 正直、不便になった。
- 594 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 23:29:46 ]
- ということは、実装によってはlist?を定数時間で計算できるな
- 595 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 02:10:36 ]
- 処理系依存の話題で恐縮ですが、Gaucheのオブジェクトシステムについてお聞きしたいです。
スレ違い、または既出だったら申し訳ないです。 用件を言うと、Gaucheのオブジェクトシステムで スロットに対するアクセス制御は困難でしょうか? (アクセス制御: C++, Java等にある private / public 的な機構) 現在、「プログラミングGauche」17章のオブジェクトシステムのあたりを読んでます。 自分は、Java->Ruby->(Haskell)->Scheme とやってきたので、どうもJava的なOOの発想があるようです。 せっかくオブジェクトシステムがあるのだから、 活用しようと思っているのですが、スロットのアクセス制御が無いと不安に思います。 method内だけ参照や変更を許すようなclassを定義したいなぁと思ったのが事の発端です。 「Gauche:スロットアクセス」で検索して出てくるページが参考になったのですが、 マクロとメタオブジェクトプロトコルを駆使してました。 やはり総称関数という機構を取り入れている以上、 単純にスロットをカプセル化はできないですかね? 長文すみませんでした。
- 596 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 02:13:54 ]
- いわゆるメソッドと違って、総称関数は特定のクラスの所有物じゃないからねえ。
とりあえず、その辺を管理する(指定する)仕掛けがいるわなあ。
- 597 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 02:14:38 ]
- 真面目な長文かけるならこんなゴミ溜めじゃなくてWilikiにでもかきなよ
- 598 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 02:18:57 ]
- >>595
アクセスコントロールはないです。
- 599 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 03:10:07 ]
- 整備兵 『80%?冗談じゃありません!現状でジオングの性能は100%出せます!!』
シャア 『脚は着いていない』 整備兵 『あんなの飾りです。偉い人にはそれが分からんのですよ!』
- 600 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 03:29:04 ]
- javaやC++と同じにしたいなら、同じ機構を用意すればいい。
wilikiの連中は、既存のシステムしか使わずに実行時に何かやろうとしてる。 おかしな事になるのは当然。こんなのと付き合う必要はない。 >>595を含め大抵の奴はCLOSモドキなんて望んでない。 javaやC++でコンパイル後に何の情報が残るか考えれば判るはず。 さあ、やるんだ。
- 601 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 03:35:07 ]
- >>599
元ネタってガンダムなの!?
- 602 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 03:47:35 ]
- >>600
こうして、アプリケーションと同じ数だけのフレームワークが発明されるのであった。w (批判ではない。むしろこのあたりがLispの良さであろう。)
- 603 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 04:07:38 ]
- 資産の積み重ねができないわけですね
これも数十年経ってもメジャーになれない理由の一つなのかな?
- 604 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 04:15:06 ]
- ANSIに規格がある言語はマイナーとは言えないだろう
- 605 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 05:03:15 ]
- >>595
CLOS系は「そういうもの(アクセス制御は気にしない)」だと思うのが吉。 文化の違い。 隠蔽したいなら、クロージャベースのオブジェクトシステムの方がいいんじゃないかな。
- 606 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 07:10:05 ]
- >>595
CLOSって、Java/C++系とは文化が違いすぎて、private/public/protectの区別がなくても さほど問題がないよ。この辺は>>605さんの意見とかぶるね。 あの系統のオブジェクトシステムを作るなら、別に作成したほうがいいけど、できればCLOS の方を利用するように頭の発想を切り替えたほうがいいよ。CLOSのほうが柔軟な制御が できるのでね。
- 607 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 08:00:04 ]
- オブジェクトが必ずその名前のスロットを持っているとassertできる状況なら、
それを隠蔽する必要があるとは思えない。
- 608 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 08:16:27 ]
- CLOS使えだなんて口が裂けても言えん。
- 609 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 11:02:11 ]
- CLOSは、例えばアクセスコントロールを持つような
別の標準オブジェクトシステムのカーネルになるための 基本オブジェクトシステムとして考案されたが、 いつの間にか標準のオブジェクトシステムの座に着いている。 なんだ使ってみればCLOSのままでええやんってところか。
- 610 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 11:06:40 ]
- そこでFlavorsですよ。
- 611 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 11:27:16 ]
- >>609
この辺の事情はbit別冊のCLOS本に書いてある。 たしか井田さんがMLでの議論をまとめてる。 既存のCommonLoopsかFlovorsのどちらの流儀にするか揉めているところに、 汎用のカーネルを考案できないかとの提案があった。
- 612 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 11:30:26 ]
- >>597
そうですね。是非、そちらの方も活用させて頂きます。 scheme系は、まだ初めてから日が浅いこともあり、 気が引けてました。 >>600 私の不勉強で、どのようにJavaなどと同じ機構を実現するか分かりませんでした。 出直します。ただ、できるだけ独自の機構は避けたいと考えてました。 >>605-607 クロージャベースのオブジェクトシステムだと内部状態は隠蔽できますね。 ただ、CLOSとの相性・一貫性に不安があり、できればGaucheに標準的にある オブジェクトシステムだけで解決しようと思ってました. 皆さんのおっしゃるように、発想を切り替えてみようと思います。 >>596-608 最後に。皆さん、レスありがとうございました。とても参考になりました。 CLOSと、Java/C++系とは異なる発想でプログラムを設計するという事ですね。 CLOSを実際にもっと使用して、その発想の違いを考えていきたいと思います。
- 613 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 11:47:01 ]
- 人気の言語を作るには ---Being Popular---
practical-scheme.net/trans/being-popular-j.html を読んで妄想した事。 Lispにシステムハッキング機能を追加したら、インスタントLispマシンの出来上がり!! Lisp Override your Operating System...
- 614 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 13:03:12 ]
- >>613
つmovitz
- 615 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 13:51:43 ]
- >>592-593
LanguageをSwindleに設定したらset-cdr!が使えました。
- 616 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 16:13:16 ]
- >>615
ver4.0ってR6RSに対応したんだっけ?
- 617 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 16:47:57 ]
- setq 説得
set-cdr! 説得だああああ!
- 618 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 16:54:30 ]
- お〜い、山田く〜ん
617の座布団全部とれ!
- 619 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 17:34:39 ]
- >>616
ほぼR6RSを満たすSchemeや、独自のPLT Schemeなど複数の言語が選べる。 そして、異なる言語で書かれたモジュールをインポートできる。
- 620 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 17:41:42 ]
- >>616
>ほぼR6RSを満たすSchemeや まだR6RSに対応できてないの?言語選択はR5RSのままだし。
- 621 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:12:48 ]
- >>620
言語選択は一番上の ``Module'' を選ぶ。 ソース (DrSchemeのウィンドウの上半分) の最初の行に #!r6rs 次の行に (import (rnrs)) それ以降の行に定義を書いて Runのボタンを押す。
- 622 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 19:12:34 ]
- r6rsモードだと#lang schemeの組み込み関数とかsrfiとか使えなくね?
- 623 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 19:48:02 ]
- R6RSになって「R5RS用のSRFI」は使えてるの?
- 624 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 19:59:04 ]
- Revised6 Report on the Algorithmic Language Scheme
www.r6rs.org/final/r6rs.pdf Revised6 Report on the Algorithmic Language Scheme ― Standard Libraries www.r6rs.org/final/r6rs-lib.pdf Revised6 Report on the Algorithmic Language Scheme ― Non-Normative Appendices www.r6rs.org/final/r6rs-app.pdf Revised6 Report on the Algorithmic Language Scheme ― Rationale www.r6rs.org/final/r6rs-rationale.pdf 基本的には上2つがユーザーに重要な情報。 #次のテンプレに入れてください。
- 625 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 20:05:05 ]
- ちょっと聞きにくい質問なんですが、
R6RSってR5RSとかと比べてどうなんでしょうか。 まだ出たばかりで実装は少ないと思いますが、 今後、多くの処理系で実装が進むのか、 また、ユーザとしてもR6RSへの移行を意識しておくべきなのか、 そういったことです。 ちょっと漠然とした質問でうまくまとめられなくてすみません。
- 626 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 20:10:00 ]
- >>621
(import (rnrs)) ↓↑ (import (rnrs (6))) どっち?
- 627 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 20:14:27 ]
- >>621
補足 特殊トークン #!r6rs はソースがR6RS準拠であることを示す。コメント扱い。
- 628 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 20:19:16 ]
- (import (rms)) かとおもった。
|

|