1 名前:デフォルトの名無しさん mailto:sage [04/11/25 21:48:56] lispを触ってみたい入門者のQ&A 初心者のQ&A 本スレでは恥ずかしくて聞けない人のQ&A 本スレは高度すぎて割り込めない人のQ&A linuxでなくてwindowsでやりたいんですが・・・Q&A lispを使用してC#やJAVAの代替にするための方法(おまけ) ま、ゆっくりたりましょう。 「いいものの本質は、いかなる時代においても変わらない」byパワーズ
620 名前:おしえて厨 [2005/10/02(日) 23:47:39 ] clispをwinで使ってるんだけど、lispでウィンドウやダイアログボックスを だすようなGUI作ることってできないの?できるとしたら そういう情報はどこにある?
621 名前:デフォルトの名無しさん mailto:sage [2005/10/03(月) 00:01:59 ] >>620 例えば www.wxcl-project.org/
622 名前:デフォルトの名無しさん mailto:sage [2005/10/03(月) 01:27:27 ] できるよ.(621 は試したことないの別のネタで) 自分で Windows の API を呼べばいい. A) FFI で必要な API をラップする (hocwp.free.fr/ah2cl/ とか) B) Lisp 向けの API を実装したライブラリを作る ただし,どっちもある程度 C の知識がないと難しいかもね. Corman Lisp とか AllegroCL や LispWorks といった処理系を使う手もある. AllegroCL や LispWorks はどっちも GUI ライブラリを持ってるよ.
623 名前:デフォルトの名無しさん mailto:sage [2005/10/03(月) 16:43:37 ] CommonLispにはpartitionがなかったのか…
624 名前:デフォルトの名無しさん mailto:sage [2005/10/03(月) 17:56:31 ] R5RS には remove-if すらないけどね
625 名前:デフォルトの名無しさん [2005/10/05(水) 15:05:45 ] 質問です。 (my-reverse '(1 (2 3) (4 (5 6)))) を与えたら(((6 5) 4) (3 2) 1) と、 中身が全て反転するような関数my-reverseを定義するやり方を教えてください。 お願いします。
626 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 15:14:34 ] >>625 >>513-525
627 名前:デフォルトの名無しさん [2005/10/05(水) 17:33:39 ] >>626 すいません。>>513-525 を読んでもわかりませんでした。。
628 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 18:07:07 ] (defun my-reverse (list) (let ((result '())) (dolist (x list result) (if (consp x) (push (my-reverse x) result) (push x result)))))
629 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 19:14:32 ] >>628 ありがとうございます!!
630 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 19:43:33 ] >>525
631 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 20:30:40 ] 相変わらずレベル低いよな おまえら普段何してんの?
632 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 20:35:49 ] みんな処理系は何使ってんの?
633 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 23:10:51 ] Gaucheでネットワークプログラミング
634 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 01:30:05 ] CLISP - 日常的な小物スクリプト書き SBCL - CLISP では力不足な計算用とかスレッド使いたいときとか CMUCL - 最近使ってない…互換性検証用か
635 名前:631 mailto:sage [2005/10/06(木) 01:34:37 ] おまえらレベル低すぎ 俺の使っている処理系を教えてやるから勉強汁 Ruby 1.8.3 ユーザビリティの低いもの使ってんなよ
636 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 01:51:04 ] >>634 SBCLってCMUCLよりデバッグやりにくくない?
637 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 02:14:31 ] スレッドまわり以外は特にそんな事おもわないけど? どのへんがやりにくいとおもう?
638 名前:デフォルトの名無しさん mailto:sage [2005/10/07(金) 10:11:25 ] Windowsのアプリに組み込めるLisp、Schemeでいいの無いですかね?
639 名前:デフォルトの名無しさん mailto:sage [2005/10/07(金) 14:34:43 ] ないから俺は自作したが。
640 名前:初心者 [2005/10/09(日) 00:25:24 ] (defun plus-minus (lst &optional plus minus &aux (x (first lst)) (xs (rest lst))) (cond ((null x) (values plus minus)) ((>= x 0) (print xs) (plus-minus xs (cons x plus) minus)) (t (plus-minus xs plus (cons x minus))))) このコードのxやxsって再帰のたびに更新されていくけど、a (defun test (lis &aux (a (first lis)) (b (rest lis))) (if (not (null (first lis))) (print b)(test b))) これのaやbは再帰しても更新されないよね・・・違いはなんなの? 再帰後にもずっと同じ値がはいったままだったり、再帰後には再帰後の 更新された値が入ったりするその違いって?
641 名前:デフォルトの名無しさん mailto:sage [2005/10/09(日) 01:25:18 ] (lambda (x y &aux (a form1) (b form2)) ...) は (lambda (x y) (let* ((a form1) (b form2)) ...)) と同じ。 後半で更新されてないように見えるとしたら、それはちゃんと再帰 してないから。
642 名前:デフォルトの名無しさん mailto:sage [2005/10/09(日) 08:45:59 ] >>640 ↓こんな動きになってるのは理解できてるの? CL-USER> (PLUS-MINUS '(1 -3 2)) 0: (PLUS-MINUS (1 -3 2)) x: 1 xs: (-3 2) 1: (PLUS-MINUS (-3 2) (1) NIL) x: -3 xs: (2) 2: (PLUS-MINUS (2) (1) (-3)) x: 2 xs: () 3: (PLUS-MINUS NIL (2 1) (-3)) x: () xs: () 3: PLUS-MINUS returned (2 1) (-3) 2: PLUS-MINUS returned (2 1) (-3) 1: PLUS-MINUS returned (2 1) (-3) 0: PLUS-MINUS returned (2 1) (-3) CL-USER> (TEST '(NIL NIL 2)) 0: (TEST (NIL NIL 2)) a: NIL b: (NIL 2) 1: (TEST (NIL 2)) a: NIL b: (2) 2: (TEST (2)) a: 2 b: () NIL 2: TEST returned NIL 1: TEST returned NIL 0: TEST returned NIL
643 名前:& ◆RdmUjfVKqQ [2005/10/09(日) 10:34:53 ] >641, 642 そういう動きになっててほしいけど、 printから出てくる値をみてる感じだと、 2番目のコードだと再帰前のリストのrestとったものがでてるようにみえるんだよ〜
644 名前:デフォルトの名無しさん mailto:sage [2005/10/09(日) 10:54:00 ] 間違いなくコードが変だからどういう動作を意図してるのか言ってみ。
645 名前:デフォルトの名無しさん mailto:sage [2005/10/09(日) 12:53:13 ] 642 は SBCL でのトレース結果だよ.CLISP でも同じだた. 意図したように動いているみたいなんで, 640 が動作させた本当のコードと入力値を述べたまえ.
646 名前:デフォルトの名無しさん mailto:sage [2005/10/09(日) 14:08:21 ] >>640 が何を訊きたいのか判らんが、こう書きたかったんじゃないのか? (defun test (lis &aux (a (first lis)) (b (rest lis))) (if (not (null (first lis))) (progn (print b)(test b))))
647 名前:デフォルトの名無しさん mailto:sage [2005/10/09(日) 14:40:00 ] >>646 それでも条件が逆になるけど再帰時にちゃんと lis はあたらしくなるぞ? 思うに,if の条件が意図したやつと逆になっているので期待どうりしていなかっ たとかそんな事じゃないかな.どーゆう条件でどう動いてほしかったのかを日本語 で説明してもらうのがはやいと思う.
648 名前:おすえて [2005/10/09(日) 20:21:16 ] (defun test (lis &aux (a (first lis)) (b (rest lis))) (if (not (null (first lis))) (print b)(test b))) これが、(test '(1 2 3 4 5))とやったときに 例えば (2 3 4 5) (3 4 5) (4 5) (5) みたいにならないのは、なぜ?
649 名前:デフォルトの名無しさん mailto:sage [2005/10/09(日) 20:29:11 ] >>648 なぜそうなると思った?
650 名前:& ◆eDpN.64OYw [2005/10/09(日) 20:48:49 ] (defun plus-minus (lst &optional plus minus &aux (x (first lst)) (xs (rest lst))) (cond ((null x) (values plus minus)) ((>= x 0) (print xs) (plus-minus xs (cons x plus) minus)) (t (plus-minus xs plus (cons x minus))))) ↑これだと再帰のたびにxsが変わっていくから、468でもそうだろうと 思ったんだけど
651 名前:デフォルトの名無しさん mailto:sage [2005/10/09(日) 21:00:36 ] 君のやりたいことは、 (defun test (lis &aux (a (first lis)) (b (rest lis))) (cond ((not (null b)) (print b) (test b)))) ってな感じかな。if の定義を再勉強!
652 名前:デフォルトの名無しさん mailto:sage [2005/10/09(日) 21:04:56 ] やっぱりな.再帰とか &aux 以前に 2 つ間違いをおかしている. 1. if の構文を間違えている (おそらく) 2. 条件の中身も間違えている それって,「条件を満しているなら print で b を表示したあと再帰する」って 処理が希望のようだが,書いたコードが,「もしリストの先頭要素が nil 以外なら表示する.そうでないなら再帰する」 なので,表示は一回しかされない. (defun test (lst &aux (a (first lst)) (b (rest lst))) (if a (progn (print b) (test b)))) もしくは (defun test (lst &aux (a (first lst)) (b (rest lst))) (when a (print b) (test b))) だな.手元の参考書を if の説明をちゃんと読みなおしたほうがいい.
653 名前:& ◆QWv3R1XL8M [2005/10/09(日) 21:14:39 ] >書いたコードが,「もしリストの先頭要素が nil 以外なら表示する.そうでないなら再帰する」 なので,表示は一回しかされない. なんで?? 再帰二回目だとrestとった値がなんでnilになる???2とか3じゃないの?? ifがどうとか言う以前によくわからんのですが
654 名前:デフォルトの名無しさん mailto:sage [2005/10/09(日) 21:23:19 ] 再帰しないんだから二回目もクソもないんだよ。 if の説明を確認しろっていわれてんだから素直にそうしな。
655 名前:& ◆QWv3R1XL8M [2005/10/09(日) 21:31:58 ] なるほど、わかりました。ありがとうございました。 で、 (defun test (lis &aux (a (first lis)) (b (rest lis))) (cond ((not (null b)) (print b) (test b)))) ↑これ実行できないんですけどこれは何故?
656 名前:デフォルトの名無しさん mailto:sage [2005/10/09(日) 21:39:12 ] 全角空白までコピペしちゃっているからだろう. 大した手間でもないだろうから手で入力したまえ.
657 名前:おしえて厨 [2005/10/10(月) 19:51:08 ] lispのsort関数を使わないで、 オリジナルの数字リストの昇順または降順ソートプログラムを 書いてみてください。 できれば初心者でもアルゴリズムが分かりやすいような書き方でおながい
658 名前:デフォルトの名無しさん mailto:sage [2005/10/10(月) 20:35:14 ] >>657 やだ
659 名前:デフォルトの名無しさん [2005/10/10(月) 20:50:39 ] xのy乗を求める問題なんだけど、どこか変なところある? include <stdio.h> #include <math.h> main() { double x,y,z; printf("x ="); scanf("%lf",&x); printf("y ="); scanf("%lf",&y); z = pow(x ,y); printf("x\ty = %lf", z); }
660 名前:デフォルトの名無しさん mailto:sage [2005/10/10(月) 20:52:12 ] 頭が変かもしれんな
661 名前:デフォルトの名無しさん mailto:sage [2005/10/10(月) 21:05:09 ] 書き込むスレの選択が変
662 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 04:45:21 ] >>620 面白い物見つけた。 ttp://www.geocities.jp/shido_takafumi/lisp/macro3.html Socket 経由で GUI を作ってるっぽいけど、Windows Native でも 似た様なのがあるんじゃないかな。Mac だとこういうのがある。 www.bluem.net/downloads/pashua_en/
663 名前:おしえて厨 [2005/10/11(火) 08:49:23 ] (defun small (lis) (cond ((null (rest lis)) lis) ((< (first lis) (first (rest lis))) (remove (first lis) lis) (remove (first (rest lis))) (cons (first lis) lis) (cons (first (rest lis) lis)) (small lis) (t (small (rest lis)))))) ↑バブルソートしたくて書いてみた。駄目だった。どこが駄目?
664 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 09:41:52 ] バブルソートを使うところが駄目。
665 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 10:13:57 ] (defun merge-sort (lst) (let ((len (length lst))) (cond ((< len 2) lst) ((= len 2) (let ((x (car lst)) (y (cadr lst))) (if (< x y) (list x y) (list y x)))) (t (do ((x (merge-sort (butlast lst (ash len -1)))) (y (merge-sort (last lst (ash len -1)))) (r '())) ((or (null x) (null y)) (nconc (nreverse r) x y)) (push (if (< (car x) (car y)) (pop x) (pop y)) r))))))
666 名前:おしえて厨 [2005/10/11(火) 17:25:50 ] (remove 'a 'a)みたいに一文字だとremoveできないじゃん。 どうやって一文字しかないのを消すの? あと、(a b c (a ((b))))みたいになってるときのbだけを消して、 (a b c (a (( ))))みたいにする方法って、あるの?
667 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 18:03:53 ] ((lambda (x y) ((lambda (f) (funcall f f y)) (lambda (f y) (typecase y (list (remove x (mapcar (lambda (y) (funcall f f y)) y))) (t y))))) 'b '(a b c (a ((b))))) => (A C (A (NIL)))
668 名前:おしえて厨 [2005/10/11(火) 19:06:51 ] 関数が定義されていません: typecase
669 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 19:36:09 ] そりゃ Common Lisp じゃないな。スレ違いだからもうこのスレに来ないように。
670 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 19:37:20 ] >>668 処理系がまがい物だな
671 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 20:10:17 ] xyzzy だな
672 名前:おしえて厨 [2005/10/11(火) 20:43:06 ] xyzzyなんだけど、typecaseつかわずにできないの???
673 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 21:12:30 ] >>672 xyzzy使いのよしみで回答しておくけど、 CommonLisp を勉強するのに xyzzy を処理系として使っちゃダメ。 xyzzy でマクロを書くための勉強ならここで質問するのは間違い。 ((lambda (x y) ((lambda (f) (funcall f f y)) (lambda (f y) (if (listp y) (remove x (mapcar (lambda (y) (funcall f f y)) y)) y)))) 'b '(a b c (a ((b))))) =>(a c (a (nil)))
674 名前:おしえて厨 [2005/10/11(火) 21:57:05 ] (defun del-atom (n lis) (cond ((null lis) nil) ((atom (first lis)) (cond ((eql n (first lis)) (del-atom n (rest lis))) (t (cons (first lis) (del-atom n (rest lis)))))) ((listp (first lis)) (cond ((listp (first (first (first lis)))) (cond ((eql n (first (first (first lis))))) (del-atom n (rest lis))) (t (cons (first lis) (del-atom n (rest lis)))))) (cond ((listp n (first (first lis))) (cond ((eql n (first (first lis))) (del-atom n (rest lis)))) (t (cons (first lis) (del-atom n (rest lis))))))))) ↑自分でもやってみようとしたら、こんなんなっちゃったよ〜〜〜〜 どこが駄目???
675 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 00:50:11 ] ((listp (first lis)) (cons (del-atom n (first lis)) (del-atom n (rest lis))))
676 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 00:51:18 ] first とか rest って使われてるんだなぁとそちらのほうに感動してたりする俺。
677 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 17:12:58 ] >>676 それはね、「xyzzy Lisp Programming」のページで、first と rest を推奨す る、と書かれているからだよ。 www.geocities.jp/m_hiroi/xyzzy_lisp/abclisp02.html
678 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 17:23:12 ] >>677 「first と rest を使うことが推奨されています」なんて書いてるが、「誰が」推奨 しているのか不明だな。少なくとも CLtL2 にも ANSI にもそんな記述は見あた らないが。(もし見落としてたら教えてくれ)
679 名前:おしえて厨 [2005/10/12(水) 17:33:11 ] P.H.ウィンストンという人が書いた緑の本に推奨されていた。 まあそれはさておき675さんの指摘がよくわかりません。 どこを直せばいいの??
680 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 18:08:58 ] >>679 > どこを直せばいいの?? 頭の中身。 お前さんは九九も覚えてないのに数学の問題を見てわからないとわめいてるの と同じなので、677 が紹介してるサイトの Common Lisp 入門を全部読んで 理解してからもう一度いらっしゃい。
681 名前:デフォルトの名無しさん mailto:sage [2005/10/14(金) 03:51:47 ] ウィンストンって培風館の奴か? car,cdrの方が好き ハード寄りで
682 名前:デフォルトの名無しさん mailto:sage [2005/10/14(金) 11:14:21 ] >>681 いつの時代の方ですか?
683 名前:デフォルトの名無しさん mailto:sage [2005/10/14(金) 12:23:03 ] 平成17年
684 名前:デフォルトの名無しさん mailto:sage [2005/10/14(金) 12:27:20 ] 漏れも car cdr のほうが好きだが、さすがに IBM 7090 (だっけか)は使ったことない。
685 名前:デフォルトの名無しさん mailto:sage [2005/10/14(金) 14:01:44 ] 8月からLisp触り始めた超初心者だけど car、cdrのほうが好きだな。
686 名前:デフォルトの名無しさん mailto:sage [2005/10/14(金) 17:17:44 ] >>679 ,681 俺もその本持ってる。そのせいか first、rest 派。 自分では使わないから、car や cdr ならともかく caddr ぐらいでもわけわからん。
687 名前:デフォルトの名無しさん mailto:sage [2005/10/14(金) 17:23:31 ] >>686 caddr と third とどっちがわかりやすいかだわな。 個人的には視覚的にわかる caddr のほうが好き。
688 名前:デフォルトの名無しさん mailto:sage [2005/10/14(金) 22:48:16 ] nthは邪道ですか、そうですか いや、俺も使わないけど
689 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 14:56:32 ] (nth 3 L) ≡ (fourth L) なのがなんとも
690 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 15:05:25 ] >>689 nth は aref とともに elt の特別版ということだな。 むしろ、この3つの中で nth だけ引数順が違うのが気になる。
691 名前:デフォルトの名無しさん mailto:sage [2005/10/16(日) 18:18:47 ] ルプラカ ルプラクドゥ パンプルピンプルパムポップン カッドゥルゥァー クックドゥー
692 名前:デフォルトの名無しさん mailto:sage [2005/10/18(火) 22:37:29 ] オブラディ オブラダ (・∀・)スンスンスーン
693 名前:デフォルトの名無しさん [2005/10/19(水) 19:16:22 ] ;;ある基点となるフォルダより下のフォルダのフルパスを全て取得するには再帰でどう書けばいいですか?
694 名前:デフォルトの名無しさん mailto:sage [2005/10/19(水) 20:40:03 ] 実装依存
695 名前:デフォルトの名無しさん [2005/10/19(水) 20:42:51 ] xyzzyでは??
696 名前:デフォルトの名無しさん mailto:sage [2005/10/19(水) 20:45:20 ] 板違い
697 名前:デフォルトの名無しさん mailto:sage [2005/10/19(水) 20:55:26 ] (directory PATHNAME) あたりで調べると良いかも。
698 名前:デフォルトの名無しさん mailto:sage [2005/10/21(金) 00:53:04 ] ECL使って実現されているプロジェクトでそこそこの規模のやつって誰か知りません? C/C++とCommon Lispを混ぜた開発したいんだけども、実際の使われ方を見て勉強した方が 理解が早いかなと思って。 それともUFFI使うのが定説ですかね。
699 名前:デフォルトの名無しさん mailto:sage [2005/10/21(金) 01:37:09 ] どうなんだろう.最近は CFFI とかも出てきてるしねぇ. まず Lisp 側のインターフェースを決めて,それが十分に抽象化できていれば その下は UFFI だろうが処理系の FFI だろうがたぶん問題ない. ECL はあんまり触ったことないので本題には答えられない.スマソ. キーワードハイライトつきのエディタ作ったとか Planet Lisp に出てたような.
700 名前:698 mailto:sage [2005/10/21(金) 01:58:32 ] >> 699 ありがと。Planet Lisp行ってきます。 スレ違いって怒られるかも知れないけど、Gaucheとかだと結構事情が違ったりする? 確か開発目標に他の言語と仲良くするってのがあったような。でも最終的には ネイティブコードで走らせたいんだよなぁ・・・
701 名前:デフォルトの名無しさん mailto:sage [2005/10/21(金) 02:08:50 ] ネイティブコードってことは性能が欲しいの? それでフリーなのがいいならCMUCLやSBCLがいいんじゃないかな。 Cの呼び出しやCからのコールバックもそれほど面倒じゃないし。
702 名前:698 mailto:sage [2005/10/21(金) 02:45:04 ] Planet Lisp行ってきました。 簡単なアナウンスだけ出ててsourceforgeに誘導されてみたらスクリーンショットも 公開されてました。CVS HEADにコードが入っているみたいなのでこれから調査します。 いまはプロトタイピングの段階なので実現可能性の検証が主体です。アルゴリズムの設計と 検証はLispであ〜でもないこ〜でもないやりながら考えた方がお手軽なのですが プロジェクトの他のメンバがC/C++でコード書いてるので現状は ・Lispでアルゴリズム練る → C++で等価なコードを書いてリポジトリにチェックイン してます。二度手間でアホらしいんですが最初からC++であれこれ書けないんですよ。 C++の汚さに辟易して大分昔に標準化の動向追いかけるのやめていたこともあって。 で、どうせならLispのコードそのままC/C++に埋め込んじゃうことはできないのかな〜と たくらんでいるところです。 スレ違いになりますが最近STLやらBoostやらLokiやら勉強してみて驚愕しました。 何であんな大変な思いをしてまでC++使うんですかね・・・不思議でたまらん。
703 名前:デフォルトの名無しさん mailto:sage [2005/10/21(金) 02:54:10 ] >>702 ずいぶんと怪奇なことになってるよね。>C++ でも、すべてインラインに開いちゃうから確かに速い。 そのかわりコードサイズが大爆発。w
704 名前:デフォルトの名無しさん mailto:sage [2005/10/25(火) 00:24:33 ] 今ポールグラハムのlisp本でお勉強中なのですが、lispでは soketを開くとかプロセス制御するとか低レイヤな処理をする場合 どーすんのでしょうか。処理系にそうしたライブラリがなかったりする場合は?
705 名前:デフォルトの名無しさん mailto:sage [2005/10/25(火) 00:34:49 ] socketです。typoっす。すんません。
706 名前:デフォルトの名無しさん mailto:sage [2005/10/25(火) 01:12:37 ] >>704 どうにもなりません。そういうライブラリが存在するか、ネイティブコードを 呼ぶなどの方法でなんとかできる処理系を選びましょう。
707 名前:704 mailto:sage [2005/10/25(火) 01:53:21 ] >>706 むぅ。そういうもんなんですか。教えて頂いて有難うございます。 そういったことは一旦置いておくとすると、学習向けに オススメの処理系があればご教授頂けると助かります。 今のところ本読んでるだけなのですが手続き型が染み付いた頭には 関数プログラミングって難しい…。
708 名前:デフォルトの名無しさん mailto:sage [2005/10/25(火) 02:04:53 ] >>707 WindowsならCLISP、UNIX系ならSBCLがいいんじゃないかな。 どちらもソケットなどの拡張機能は持っているよ。
709 名前:704 mailto:sage [2005/10/25(火) 02:12:34 ] >>708 どもです。SBCLっての調べてみます。。
710 名前:デフォルトの名無しさん mailto:sage [2005/10/28(金) 00:10:41 ] 潜水艦から発射するミサイルじゃないの?
711 名前:デフォルトの名無しさん mailto:sage [2005/10/28(金) 00:15:22 ] >>710 それはSLBM
712 名前:デフォルトの名無しさん mailto:sage [2005/10/28(金) 01:26:06 ] コンパイラ・スクリプトエンジン相談スレで言語処理系の実装にLispを使うべきだ風な 書き込みを見掛けて興味を持ったのですが、具体的にLispで記述されたコンパイラとかで 参考になりそうなものがあれば教えていただけますか?ソースを見てどんな利点があるのか 比較してみたいです。大昔GCCのソースを眺めたとき内部でS式みたいので木を表現して いたみたいでしたが、表現形式だけじゃなくて実際に内部でLispプログラムが動いてたり するんだろか。
713 名前:デフォルトの名無しさん mailto:sage [2005/10/28(金) 03:53:37 ] かつては MacLisp が Fortran と張り合っていたわけだし,今でも Lisp コン パイラはほとんど Lisp で書かれているよ.ただ,Lisp 製の ML や C コンパ イラとかもあるけど,入門で読むのは無理だろう. 利点としてはコンパイラを書く時にモロに Lisp コンパイラの機能がつかえる!! といっても,何の事か Lisp を知らなければまったくイメージできないかもしれない. だからまず Lisp を学ぶ必要があるとおもうよ.基礎を一通りやったあと, groups.google.com/group/comp.lang.lisp/msg/2108939e399c5c4e とか見て,それでもメリットがわからないようなら Lisp の事は忘れたほうが いい.合う合わないがあるからね.
714 名前:デフォルトの名無しさん mailto:sage [2005/10/28(金) 20:14:18 ] MacLispか…研究室の物置に5”FDの認知心理のプログラム群があったなぁ
715 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 01:11:05 ] lispと他のプログラムとの構文とかの対比表ってありませんか?
716 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 03:33:47 ] MacLisp か…今やプロジェクト Mac の Lisp で Macintosh とは関係ないと 言わないと通じない時代かもしれんな…
717 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 06:51:32 ] ttp://kasamatusan.sakura.ne.jp/cgi-bin2/src/ichi14589.jpg.html (竹内)
718 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 11:34:43 ] >>715 他のプログラム言語,と言いたいのか?具体的には何よ?
719 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 14:47:52 ] >>718 C,C++,java,perl,ruby,python,PHPなどのメジャーな手続き型のどれか
720 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 16:39:07 ] >>719 Lisp プログラマのための Python 入門 www.unixuser.org/~euske/doc/python/python-lisp-j.html こんな感じ?