1 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 23:16:33 ] ※ ここはCommon Lisp、SchemeをはじめとするLisp族全般のスレです ※ Part24: ttp://pc11.2ch.net/test/read.cgi/tech/1224939205/ Part23: ttp://pc11.2ch.net/test/read.cgi/tech/1215875388/ Part22: ttp://pc11.2ch.net/test/read.cgi/tech/1211381920/ Part21: ttp://pc11.2ch.net/test/read.cgi/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/ Part09: ttp://pc2.2ch.net/test/read.cgi/tech/1069594582/ Part08: ttp://pc5.2ch.net/tech/kako/1058/10582/1058263391.html Part07: ttp://pc5.2ch.net/tech/kako/1042/10421/1042167213.html Part06: ttp://pc3.2ch.net/tech/kako/1031/10315/1031560687.html Part05: ttp://pc3.2ch.net/tech/kako/1023/10230/1023091882.html Part04: ttp://pc.2ch.net/tech/kako/1016/10162/1016211619.html Part03: ttp://pc.2ch.net/tech/kako/1008/10082/1008220265.html Part02: ttp://pc.2ch.net/tech/kako/1002/10025/1002584344.html Part01: ttp://piza2.2ch.net/tech/kako/987/987169286.html
672 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:52:45 ] SGIが倒産したらしい
673 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:58:17 ] そうか、そうか
674 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 23:00:18 ] lisp系は自作に限るよ
675 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 03:41:44 ] LispスレでSGIといったら創価じゃなくて シリコン・グラフィックの方だろJK
676 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 03:47:31 ] 2度目の倒産なんだって? なんかLispに関して大きいことやってたっけ? OpenGLぐらいしかシランわ。
677 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 07:44:57 ] ずっと自作のSchemeモドキを使っています。モドキというのは、あまり 使わない機能を削って代わりに部分継続やソフトタイピングを入れたり してるためです。それなりに高速でデバッグ機能も充実していると思って いますが、RnRSやSRFIの類は全く考慮せず作っているので公開していま せん。ドキュメント書くのもめんどくさいし(論文は書いたけど)。
678 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 09:10:38 ] >>672 エイプリルフールだと思ってた…
679 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 14:18:51 ] 勘違いしたかも。 SGI(非創価)ってLisperが作った会社だと思ってました。
680 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 14:20:30 ] lispでモナディウスなみの速度は出せるのだろうか
681 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 16:33:15 ] >>679 ジムクラーク? Lisper ではないね。専門は CG らしい。 ワークステーション屋で Lisper が作った会社ってあったっけ? Sun のビルジョイはハッカーだけど Lisper じゃないし。
682 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 16:58:18 ] 昔、N-Worldって、SGI (Indy?)向けの3D CG作成アプリなかった? Lispマシンから移植されたものだったと思う。Lispで動いていたはず。 プロトタイピング強いから、いろいろな分野の初期大型アプリで使われてるね。 数式処理、ウィンドウシステム、プログラミング可能エディタなど。 CG関係も昔はもっと多かった。
683 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 18:25:17 ] sgiといえば、インディゴだな。doomでネット対戦に使わせてもらったよ。
684 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 19:27:02 ] sigは破産申請したらしいね
685 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:34:16 ] CGはもうからないのか
686 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 23:50:42 ] >>682 ニチメンなんとか、ってやつのことかな。Shiroさんが詳しそう
687 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 00:37:30 ] 前回の破産でCG方面からサーバー屋に商売変えしてたんじゃなかったっけ?
688 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 00:39:09 ] なんかMIPSの灯がどんどん消えてく気がするなぁ…
689 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 01:43:52 ] /.Jによると、どこだかに買収されるんで、それに必要な手続きなんだと。
690 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 01:57:27 ] >>681 そうゆう名前で呼ばれてかかどうかはおいといて、MIT 由来の LISP マシンってワークステーション以外のなのものでもないが…
691 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 02:28:13 ] >>685 技術の発展とともに、作業端末は高価なUNIXワークステーションではなく 安価なWindowsマシンが優位になり、未開の領域に強く柔軟なLispから 高速で大規模なプログラムに強い? C++に置き換わったとかじゃないの。
692 名前:681 mailto:sage [2009/04/03(金) 09:54:17 ] >>690 あーそうね。シンボリクスとかがそうか。 Unixワークステーション屋で、と言うべきだったかな。
693 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 11:16:16 ] carやcdrがちゃんと理解できん・・・ アセンブラの方が簡単かも。
694 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 12:14:13 ] そんなに難しいかな? 単方向リンクリストの、先頭を取り出すか、それ以外を取り出すか、 だけなんだが。
695 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 12:16:17 ] 括弧とドットの表記法でつまづくか、ポインタでつまづくかのどっちかですよねー
696 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 12:42:44 ] carは左って覚えれば良いと思うよ
697 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 12:48:44 ] >>693 コンスは単なる2つのポインタの対 Lispよりも低レベルではcarとcdrは可換で線形リストとは何の関係もない 線形リストに利用しているのはLispより高レベルだけの話 アセンブラ的に考えればこう
698 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 13:05:28 ] まずボックス表記を手で書いて それからいろんな構造をconsだけで組み立てる ドット対→線形単リスト→2分木みたいに徐々に複雑にしていくといい
699 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 13:14:01 ] Common Lisp: A Gentle Introduction to Symbolic Computation 付録の sdraw 使うと図示してくれる CL-USER> (sdraw '(1 2 3 (4 5))) [*|*]--->[*|*]--->[*|*]--->[*|*]--->NIL | | | | v v v v 1 2 3 [*|*]--->[*|*]--->NIL | | v v 4 5 www.cs.cmu.edu/~dst/Lisp/sdraw/
700 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 13:17:57 ] ちゃんと理解できないったって(と)の対応はわかりますよね? Lispのリスト記法はドット記法の構文糖 任意のリスト記法はドット記法で表せる(逆は偽) ドット記法の基本は( A . B )でホワイトスペース+ドット+ホワイトスペースがcarとcdrの間の仕切り (開き/閉じ括弧の周りはホワイトスペースの省略可) そしてドット記法を(A B C)みたいなに直すのは ドット+開き括弧を見つけたら、それと、それに対応する閉じ括弧を消しゴムで消すだけ
701 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 13:22:22 ] ( A . B ) ≡ [ A | B ]
702 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 14:15:16 ] (cons 'a 'b) => (a . b) (cons 'a (cons 'b '())) => (a b) '(a . (b . (c . ()))) => (a b c)
703 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 14:22:09 ] 'とかquoteが絡んでくると解りづらくなるから 任意のアルファベット1文字のシンボルと空リストは自己評価的という設定にしよう (cons A B) => (A . B) ;; [ A | B ] (cons A ()) => (A . ()) ≡ (A) ;; [ A | NIL ] (cons (cons A B) ()) => ((A . B) . ()) ≡ ((A . B)) ;; [ [ A | B ] | NIL ] (cons () (cons A ())) => (() . (A . ())) ≡ (() A) ;; [ NIL | [ A | NIL ] ] (cons A (cons B C)) => (A . (B . C)) ≡ (A B . C) ;; [ A | [ B | C ] ]
704 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 14:24:40 ] lispのリストはヘテロジニアスリストでさらにペアにもなるから難しいよな ML系みたいにリストは空か値とリストを持つコンスって定義だとまだわかりやすいのに
705 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 15:27:28 ] 分かりにくくないだろw
706 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 15:48:41 ] ふと思ったんですけど 効率の為にlistではなくvectorを使っているアルゴリズムって 静的にコンパイル+破壊的代入なしって条件なら プログラマにはlistとして見せつつ 内部的にはvectorとして処理できませんかね? たとえば(list 1 2 3 4 5)は 表面的にはコンスによる線形リストなんだけど内部的には#(1 2 3 4 5)であるオブジェクトを返すとか。 書き換えられない事が解っているn要素の線形リストは2ワードのセルをn個アロケートするより nワード+αのベクタで記憶するほうがよさそう。 Haskellが文字列をリストとして実装してるのはそんな理由だったりするのでしょうか?
707 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 15:50:16 ] それは「cdr coding」と呼ばれるもので散々実験済み。
708 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 15:52:55 ] 書き込んでから気づいたけど、 部分リストを複数オブジェクトで共有している場合 先頭部分の参照がはずれてもGCで回収できなくて逆に効率が悪くなりますね。 ベクタの最初の方だけGCできる方法を取れば別ですけど そうするとベクタの情報が増えて結局コンスと大差なくなるかも
709 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 16:14:39 ] >>707 おや、そうでしたか。不勉強でした。 見た所、線形リストを少しでも効率よく処理する為の物の様で ベクタを置き換えるには至らなかったようですね。
710 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 16:35:18 ] vector的利用がはっきりしているところでは、 vectorを使えばいいしね。 listで構造体を模倣してprototypingしても、 accessor使っておけば簡単に移行できるし。
711 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 17:59:01 ] evalと大域変数でhashを模倣する初心者を見てニヤニヤするんですよねー
712 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 18:02:44 ] それは君だけ。
713 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 22:15:13 ] やべえ、サボってたらSeasoned Schemerわかんねえw また後戻りか…英語もやってないし… λ.......