- 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パワーズ
- 477 名前:デフォルトの名無しさん mailto:sage [2005/06/05(日) 20:40:40 ]
- >>476
わざわざ波風立てたい理由が分からん。
- 478 名前:デフォルトの名無しさん mailto:sage [2005/06/05(日) 20:56:55 ]
- >>477
Lispよりも波風が好きなんだろう
- 479 名前:デフォルトの名無しさん mailto:sage [2005/06/05(日) 21:10:55 ]
- >>476
その辺の話は本スレの次スレ立てるときにでもまたしてもらえるとありがたい。 CommonLisp専用スレがあるんだから、もうどっちでもいいと言えばいいよ。
- 480 名前:デフォルトの名無しさん mailto:sage [2005/06/05(日) 21:12:39 ]
- 早期にEmacsLispと分離したのは正解だと思う。
CommonLispも同じ道を辿れればいいね。
- 481 名前:デフォルトの名無しさん mailto:sage [2005/06/05(日) 21:21:27 ]
- やっぱ Lisper と Schemer は仲悪いんだな
大した違いは無いのに、何がこうさせるんだろう…
- 482 名前:デフォルトの名無しさん mailto:sage [2005/06/05(日) 21:27:30 ]
- JavaとC++くらいには違うかもな。w
漏れは本スレも読んでいるが、ここはCommon Lispのスレなのだから Schemeのマクロ(Common Lispのマクロとは大きく思想が異なる)の 話題はよそでやるのが当然だと思う。 これは仲悪いとかの問題ではない。
- 483 名前:デフォルトの名無しさん mailto:sage [2005/06/05(日) 23:26:35 ]
- 小さい人間
- 484 名前:デフォルトの名無しさん mailto:sage [2005/06/06(月) 16:02:41 ]
- さて、ネタも溜まったしそろそろコードジンに発表していい?
- 485 名前:デフォルトの名無しさん mailto:sage [2005/06/06(月) 21:28:37 ]
- >>484
出典:2chってちゃんと書けよw
- 486 名前:デフォルトの名無しさん mailto:sage [2005/06/07(火) 08:04:05 ]
- 向こうのスレでみんなで仲良くタライを舞わしていたらC++君が乱入の模様。
- 487 名前:デフォルトの名無しさん mailto:sage [2005/06/07(火) 18:52:10 ]
- >>467
www.scheme.com/tspl3/ が英語だけど、比較的詳しい。 あと、MzSchemeかDrSchemeの真乳有るあたりかな。。
- 488 名前:デフォルトの名無しさん mailto:sage [2005/06/12(日) 21:10:08 ]
- こっちでいいかな。
Practical Common Lispの24章、25章あたりをざっくり読んでこうやってマクロは組み立てて 行くものなのかと感心しているところなのですが、ちょっと応用しようと思ったらすぐに方法が わからなくてハマりましたので助けていただきたく。 やりたいことはdefine-binary-classとかのマクロでビットフィールドを持つ構造を扱いたいの ですが・・・どの辺から発展させていったらいいんですかね? 一回のI/Oで複数個のスロットに値を配るのはできそうなんですが、その為の構文をどう設計する べきかで悩んでます。無理にマクロにしないで泥臭く書いて行けばできるのは間違いないんですけど。
- 489 名前:デフォルトの名無しさん mailto:sage [2005/06/12(日) 21:30:59 ]
- >>488
何に悩んでるかよくわからないけど、構文としては :bytes で指定するバイト数 の代わりに :bits でビット数を指定するみたいな具合にすればいいんじゃない?
- 490 名前:488 mailto:sage [2005/06/12(日) 21:54:40 ]
- スロット単位でreadしたものが流れて行っちゃう(こんな表現で伝わるかな)のは
マクロ側でいまストリームの何バイト目の何ビット目まで読んだ、みたいに自前で管理すれば いいんですかね。 身近にLisp使いがいないんで、この本に出会うまで実際のコーディング上のノウハウみたいなの 知る機会がなかなか無くて随分と損した気がします。
- 491 名前:デフォルトの名無しさん mailto:sage [2005/06/12(日) 21:59:26 ]
- >>490
まずビット単位でI/Oできるストリームみたいなのを構築(当然この中でバッファリング する必要があるだろう)して、その上に作るのがいいんじゃないかな。 マクロにするかどうかというのは本質ではない気がする。
- 492 名前:488=490 mailto:sage [2005/06/12(日) 22:11:23 ]
- > マクロにするかどうかというのは本質ではない気がする。
本質ではないという意見も理解できるのですが、この章を読んでいてPaul Grahamが書いてる ような「ミニ言語を作ってその言語を使ってプログラミングする」っていうのはこういうことかと 何となくわかったような気がしたのですよ。 逆に、いままでLispで自分流に書いて来たコードって全部「マクロ展開後」の結果をひたすら 書いて来たように感じました。それでもEmacsの中でちょいちょい変更してはテストしながら やっていたのでC/C++/Javaよりは気楽に書いてましたけど(主観ですが)。
- 493 名前:デフォルトの名無しさん mailto:sage [2005/06/12(日) 22:16:13 ]
- 「マクロにするかどうかというのは本質ではない」と書いたのは、あくまで
バイト単位とかビット単位とかという議論に対しては、という話ね。 ま、気楽にやりましょ。w
- 494 名前:488=490=492 mailto:sage [2005/06/12(日) 22:32:46 ]
- > ま、気楽にやりましょ。w
ですね。 で、こっちなんですが >>まずビット単位でI/Oできるストリームみたいなのを構築 参考になりそうなドキュメントとかご存知ないですか?何でもかんでも自分で作っちゃうのが Lisp屋さんの流儀みたいですが全然技量的に到達できそうもない今日この頃・・・
- 495 名前:デフォルトの名無しさん [2005/06/20(月) 06:57:40 ]
- LispってCの#ifとかないの?
- 496 名前:デフォルトの名無しさん mailto:sage [2005/06/20(月) 07:16:07 ]
- CL なら #+ #-
- 497 名前:デフォルトの名無しさん mailto:sage [2005/06/20(月) 07:19:17 ]
- 勿論あるよ。
www.lisp.org/HyperSpec/Body/sec_24-1-2-1-1.html www.lisp.org/HyperSpec/Body/sec_2-4-8-17.html www.lisp.org/HyperSpec/Body/sec_2-4-8-18.html
- 498 名前:デフォルトの名無しさん mailto:sage [2005/06/20(月) 20:40:22 ]
- やっぱCLはこういうとこちゃんと考えてあるなあ。
- 499 名前:デフォルトの名無しさん mailto:sage [2005/06/21(火) 07:10:59 ]
- Planet Lisp 見たら、SBCL で EUC-JP 使える様になったみたいでビクーリした
- 500 名前:デフォルトの名無しさん mailto:sage [2005/06/22(水) 02:59:25 ]
- SBCL、いつになったらWindows portは出来上がるんだ……。
- 501 名前:デフォルトの名無しさん mailto:sage [2005/06/22(水) 03:06:21 ]
- UTF-8は?
- 502 名前:デフォルトの名無しさん mailto:sage [2005/06/22(水) 03:10:51 ]
- >>501
SBCLならかなり前からサポートされている
- 503 名前:デフォルトの名無しさん mailto:sage [2005/06/27(月) 12:49:24 ]
- すみません、本スレを見ていて分からないんですが、
既存の関数名に別名をつけたい場合(nreverse に my-nreverse とつけるなど)、 Common Lisp ではどう書くのが良いんでしょうか?
- 504 名前:デフォルトの名無しさん mailto:sage [2005/06/27(月) 14:02:55 ]
- (setf (symbol-function 'my-nreverse) #'nreverse)
- 505 名前:デフォルトの名無しさん mailto:sage [2005/06/27(月) 14:20:09 ]
- いや、自分もそれでいいと思ってたんですが、本スレで「無知」と言われてたので、
何かもっと良い書き方があるのかなと。
- 506 名前:デフォルトの名無しさん mailto:sage [2005/06/28(火) 00:18:10 ]
- (setf (fdefinition 'my-nreverse) #'nreverse)
- 507 名前:デフォルトの名無しさん mailto:sage [2005/06/29(水) 00:16:54 ]
- 変わんないじゃん。つうか、xyzzy には fdefinition はなかった。
- 508 名前:デフォルトの名無しさん mailto:sage [2005/06/30(木) 10:20:04 ]
- 俺は、本スレで煽ってた奴は、Common Lisp に fset があると勘違いしていた
んではないかと疑ってるのだが。
- 509 名前:デフォルトの名無しさん mailto:age [2005/07/02(土) 16:20:12 ]
- lispって配列は参照渡しですか?
- 510 名前:デフォルトの名無しさん mailto:sage [2005/07/02(土) 18:20:15 ]
- >>509
うん
- 511 名前:デフォルトの名無しさん mailto:sage [2005/07/02(土) 19:15:29 ]
- >>510
どうもです
- 512 名前:デフォルトの名無しさん mailto:sage [2005/07/02(土) 21:51:40 ]
- …………… く ず れ す ……………
- 513 名前:デフォルトの名無しさん mailto:sage [2005/07/03(日) 17:35:10 ]
- すいません、質問なのですが
(al-reverse'(a(b c)(d(e f)))) と与えたら((((f e)d)(c b)a)となり 中身が全て反転するような関数al-reverse を定義するにはどうすれば良いのでしょうか?
- 514 名前:513 mailto:sage [2005/07/03(日) 18:23:18 ]
- 自己解決しますた。失礼。
- 515 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 05:17:03 ]
- 質問です。
普段使っている、lispアプリhogeがあって、 そのhogeをロードした後、必ず実行する関数(hoge-init)があるとします。 で、 (defun hoge-starter () (load "hoge") (hoge-init)) の様な関数を、lispの起動時に読み込まれる初期化ファイル(.init.lisp)に 定義したいのですが、この定義をしてlispを起動すると、 `undefined function: hoge-init' と、警告がでてしまいます。 この警告を消したいのですが、どのようにすれば良いでしょうか? eval-when を使うのかと思って試したのですが、うまくいきませんでした。
- 516 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 09:42:48 ]
- >>515
まず使っている処理系や環境を書くように。
- 517 名前:デフォルトの名無しさん [2005/07/12(火) 11:17:36 ]
- reverseを下記のようにプログラミングしました.
(defun my-reverse (l) (cond ((null l) nil) (t (append (my-reverse (cdr l)) (list (car l)))))) リスト内にもreverseをかけるべく再起処理を施したいのですが, なかなか出来ません,お願いします.
- 518 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 12:24:49 ]
- (my-reverse (car l))
- 519 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 13:08:00 ]
- やれやれうちの大学の奴多いな。
- 520 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 13:31:40 ]
- >>519
おまいの大学の奴らだったのかw
- 521 名前:デフォルトの名無しさん [2005/07/12(火) 13:44:40 ]
- >>519
お前もこのスレッド見ている時点でやれやれだなぁ.
- 522 名前:515 mailto:sage [2005/07/12(火) 14:44:44 ]
- >>516
失礼しました。 linux上で、cmuclとsbclを使っています。
- 523 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 15:26:05 ]
- >>521
見ているだけならいいんじゃね? 宿題を代わりにやってもらうってのはダメだが
- 524 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 16:29:19 ]
- 2ch はおまいらの学校の校則には縛られません
- 525 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 16:44:22 ]
- 宿題はさっさと教えてやった方が本人のタメにならなくていいな
- 526 名前:デフォルトの名無しさん mailto:sage [2005/07/14(木) 11:59:58 ]
- なるほど!Common Lisp と Scheme のスレを分離したいという意見が多い理由
がわからなかったのだけど、やっと分かった。宿題を丸写しするためだったの か!Common Lisp と Scheme の違いが分からないのなら、そりゃ混ざってちゃ 困るよなあ。了解しました。 ◆「Lispに関する次の問いに答えよ」m(__)m mentai.2ch.net/infosys/kako/977/977477880.html ↑のスレの1はさらに上を行く勇者で、Lisp と Ruby の違いも分からない。 まあ、別に悪いことだとは思わないけれど。私も興味のない科目はそんな風だっ たし。
- 527 名前:デフォルトの名無しさん mailto:sage [2005/07/14(木) 13:54:12 ]
- >>525
わらた。
- 528 名前:デフォルトの名無しさん mailto:sage [2005/07/21(木) 05:48:46 ]
- ハッカーと画家 読んだことある香具師いる?
- 529 名前:デフォルトの名無しさん mailto:sage [2005/07/21(木) 09:08:55 ]
- >>528
ノシ
- 530 名前:デフォルトの名無しさん mailto:sage [2005/07/21(木) 23:47:57 ]
- >>528
ノシ
- 531 名前:デフォルトの名無しさん [2005/07/23(土) 03:57:57 ]
- 誰かCL-HTTPでhelloworld書いてくれ
俺のACLではloadできない
- 532 名前:デフォルトの名無しさん mailto:sage [2005/07/24(日) 21:42:19 ]
- 関数内で任意のz(関数内で使われていない変数)を定義して、それを値として使いたいのですが、どのようにしたらよいでしょうか?
- 533 名前:デフォルトの名無しさん [2005/07/24(日) 21:42:53 ]
- 期待age
- 534 名前:デフォルトの名無しさん mailto:sage [2005/07/24(日) 22:35:57 ]
- >>532
よく質問の意味がわからんが、関数内で任意のz(関数内で使われていない変数)を 定義して、それを値として使えは良いのではないのか?w
- 535 名前:デフォルトの名無しさん [2005/07/25(月) 16:35:07 ]
- >>534
説明が下手でサマソ。 なんというか、例えば全部のアルファベットを受け取ったときにも まだ未使用のアルファベットとして定義して、そいつを値にしたいんだ そんなことって可能なのか?
- 536 名前:デフォルトの名無しさん mailto:sage [2005/07/25(月) 18:33:08 ]
- とことん説明の下手な香具師だな。
- 537 名前:デフォルトの名無しさん mailto:sage [2005/07/25(月) 18:42:19 ]
- gensymでいいんじゃない?
- 538 名前:デフォルトの名無しさん [2005/07/25(月) 23:54:43 ]
- 二つのリストから最大値と最小値を1個づつ取り出し、この二数を割る
プログラムはどうつくればいいですか?
- 539 名前:デフォルトの名無しさん mailto:sage [2005/07/26(火) 00:03:56 ]
- 最大値を求めるプログラムと
最小値を求めるプログラムを書く。 二回走査するのがいやだったら 走査は一回にして最大値と最小値をリストにしてapply
- 540 名前:デフォルトの名無しさん mailto:sage [2005/07/26(火) 02:35:34 ]
- おー久しぶりにのぞきにきたが,Lisp 関連スレが増えてる.
>>538 いいか,若いの.問題の定義がよくわからんが,考え方をおしえてやろう. お前さんは (欲しい関数 リスト1 リスト2) => (/ リスト1の最大値 リスト2 の最小値) としたいわけだ?ならそう書けばよい. (defun 欲しい関数 (リスト1 リスト2) (/ リスト1の最大値 リスト2の最小値)) 一度に考えるな.すぐにわからんものは関数にしてしまえ. (defun 欲しい関数 (リスト1 リスト2) (flet ((リスト1の最大値 () ...) (リスト2の最小値 () ...)) (/ (リスト1の最大値) (リスト2の最小値)))) さて,こうすると,除算の問題はもう解けた.あとは リスト1の最大値, リスト2の最小値という小さな問題を解くだけだ. さて,日本語だと通らない処理系もあるから,↓のようにしよう. (defun answer (list1 list2) (flet ((max-of-list1 () ...) ;; list1 の最大値を求める (min-of-list2 () ...)) ;; list2 の最大値を求める (/ (max-of-list1) (min-of-list2)))) なに?授業を聞いてないしやる気もないから最大値も最小値も求められない? そうだね, (apply #'max list1) や (apply #'min list2) でいいんじゃないか?
- 541 名前:デフォルトの名無しさん mailto:sage [2005/07/26(火) 03:14:00 ]
- テキストには#ついてねーよ
progは習ったがfletはやってねー ま、8クイーン頑張れよw
- 542 名前:デフォルトの名無しさん mailto:sage [2005/07/26(火) 05:47:40 ]
- >>535
何か具体的にやりたいことがあるんでしょうから、 具体例を出しちゃった方が話が早いと思いますよ。 >>541 prog って使ったことないや。 tagbody つきの let みたいなんでしたっけ。
- 543 名前:535 [2005/07/26(火) 18:02:54 ]
- >>542
その通りです。 では、具体的な話。 λ計算中に現れる[lexp1/x]lexp2を表現する関数 (defun substitution (x lexp1 lexp2))の中で x≠yかつφ(E)∋x、φ(Q)∋yをどちらも満たすなら 任意のλ式E、任意のz(ただしzはx≠z≠yかつ (E)Qの自由変数でも束縛変数でもない)に対して [Q/x]Ly.E → Lz.[Q/x]{z/y}E って書き換えたいんです。 ここで、Lx.Ly.(y)xは(L x L y (y) x)と表現します。
- 544 名前:535 [2005/07/26(火) 18:04:30 ]
- あ、ここでっていうのは単なる表現の例です。あしからず。
- 545 名前:デフォルトの名無しさん mailto:sage [2005/07/26(火) 18:10:14 ]
- >>543
相変わらず説明は下手だなぁ。gensymじゃ駄目なのか?
- 546 名前:535 [2005/07/26(火) 18:27:20 ]
- >>545
鬼 才 現 る ! すいませんでした。 >>537でも書き込んでいただいていたみたいなのにスルーしてましたorz そんな関数が存在していたとは・・・知りませんでした。 ありがとうございました!
- 547 名前:538 [2005/07/26(火) 20:39:51 ]
- >>540 539
説明ありがとうございますm(_ _)m やってみます。
- 548 名前:デフォルトの名無しさん [2005/08/07(日) 00:16:00 ]
- このスレって、やっぱCommonLisp専用スレ?
EmacsLispやSchemeの初心者レスはすれ違いでしょうか?
- 549 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 00:20:37 ]
- >>548
うん。スレ違い。 このあたりかな。 pc8.2ch.net/test/read.cgi/tech/1115901841/
- 550 名前:デフォルトの名無しさん [2005/08/08(月) 01:12:30 ]
- 質問です。
(defun func (x) (setq x 2)) (setq a 1) (func a) などとして、グローバルな変数をfuncの引数にして呼び出した時に そのグローバル変数自体が書き換えられるような、 C言語で例えるならポインタ引数のような使い方をするには どうすればいいのでしょうか?
- 551 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 01:20:58 ]
- トップレベルで変数を定義して、関数内でsetqなりsetfなりを呼び出せばOK
- 552 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 01:28:25 ]
- (set x 2) とか (setf (symbol-value x) 2) とか。お好きな方で。
関数に渡すのはシンボルね。
- 553 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 01:52:21 ]
- call by name にしたいならマクロ
(defmacro macro (x) `(setq ,x 2)) (setq a 1) (macro a) a => 2
- 554 名前:550 [2005/08/08(月) 04:02:54 ]
- ということは、550で書いたコードをそのまま実行すると
(func a) の後はaの値は2になっているはずですよね? でもトップレベルでsetqした値、つまり1になっています… ここでどうにかaを2にしたいんですが… 質問の仕方が悪いのかもしれません、すみません
- 555 名前:550 mailto:sage [2005/08/08(月) 04:04:46 ]
- あああすみませんわかりました!!
seqじゃなくてsetを使うとできました。お騒がせしました… とても助かりました。命の恩人です。
- 556 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 04:39:29 ]
- 嬉しさは伝わるが、すごい表現。出来なかったら首でも吊ってたんだろうかw
- 557 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 11:44:30 ]
- >>556
わろす
- 558 名前:デフォルトの名無しさん [2005/08/19(金) 04:41:05 ]
- すいません、LISPで画像処理をしたいのですが、
JPEGを扱うにはどうしたらいいのでしょうか。 いいライブラリがあったら紹介ください。
- 559 名前: [2005/08/19(金) 09:05:28 ]
- gcl で substring が呼べないのはなぜでしょうか
- 560 名前:559 [2005/08/19(金) 09:20:57 ]
- ごめ。
(subseq "hoge" 0 2) "ho" で出来た。色々変わったのかね
- 561 名前:デフォルトの名無しさん [2005/08/25(木) 04:45:03 ]
- 選別収集ってどんなだったっけ
(mapcan #'(lambda (x) (cond ここまでおもいだした
- 562 名前:デフォルトの名無しさん mailto:sage [2005/08/25(木) 06:02:14 ]
- 選別収集ってなんだったっけ。
srfi-1 でいう filter-map?
- 563 名前:デフォルトの名無しさん mailto:sage [2005/08/26(金) 01:30:58 ]
- (mapcan #'(lambda (x)
(cond ((predicate x) (list x)) (t nil)) list) predicateがoddpでlistが'(0 1 2 3 4 5) なら '(1 3 5)が返る
- 564 名前:デフォルトの名無しさん mailto:sage [2005/08/26(金) 02:09:00 ]
- (remove-if-not #'oddp '(0 1 2 3 4 5))
=> (1 3 5)
- 565 名前:デフォルトの名無しさん mailto:sage [2005/08/26(金) 02:26:56 ]
- remove-if-not や delete-if-not やらは deprecated らしいよ。
www.google.co.jp/search?q=remove-if-not+deprecated (remove-if (complement #'oddp) '(0 1 2 3 4 5)) と書くそうだ。
- 566 名前:デフォルトの名無しさん mailto:sage [2005/08/27(土) 03:33:37 ]
- deprecatedって推奨されてないってこと?
remove-ifはなんだか収集という感じがしない mapcanにできてremove-ifにできなさそうなものを考えてみる
- 567 名前:デフォルトの名無しさん mailto:sage [2005/08/29(月) 12:07:23 ]
- 別にやってることの本質は同じじゃない?
選別収集を言い換えればつまりはいらないものを捨てるってことだろうし。 remove-ifでもlambdaつかえば結局同じことだと思うけれど。
- 568 名前:デフォルトの名無しさん mailto:sage [2005/08/30(火) 02:11:36 ]
- mapcan でなら複数のリストを取って選別収集するようなことができるかな。
(mapcan #'(lambda (&rest x) (if (every pred x) x nil)) list) みたいに。 つか、実装の詳細は措いて、mapcan で書き下したもの(の限定版)に 名前をつけたもんがremove-if(-not) なんじゃないかいな。
- 569 名前:名無しさん@そうだ選挙に行こう mailto:sage [2005/09/11(日) 21:38:55 ]
- lispでCGI組みたいんですけど、
Apacheから直接PHPとかPerlみたいにはできないんでしょうか? mod_lispとかlispachとかgocheとかはネットで調べたんですが、 なんとなくすっきりしません。 やっぱ自分で作るしかないのかな?
- 570 名前:名無しさん@そうだ選挙に行こう mailto:sage [2005/09/11(日) 23:01:59 ]
- >>569
> なんとなくすっきりしません。 詳しく
- 571 名前:デフォルトの名無しさん mailto:sage [2005/09/12(月) 12:46:48 ]
- Portable AllegroServeは?
表にApache建てたいならmod_proxyで。
- 572 名前:デフォルトの名無しさん mailto:sage [2005/09/12(月) 23:20:06 ]
- >>570 えーと、つまりPerlやPHPのようにApacheのModuleとして組み込んで
直接ApacheのAPIを操作できるようにならないかということです。 >>571さん、なんとなくすっきりしないといったのは、 こういったApacheから何かを介してLispへアクセスするというのが、 私にとっては違和感がありまして…。 最近になってプログラミングをやりだしたものですので、 変なこと言ってるかもですが、 Apacheを使ってsoapとかのWebserviceのxmlを読み込み、 Routerのようにできないかなと思ってまして。 もちろん他の言語でもできるのですが。。。 こんなLisp初心者にご解答ありがとうございます。
- 573 名前:デフォルトの名無しさん [2005/09/26(月) 03:17:10 ]
- Cで書くLISP処理系の本で今手に入るものはあるんでしょうか
大学近くの古本屋を回ってもあんまり理工書がないんですが
- 574 名前:デフォルトの名無しさん mailto:sage [2005/09/26(月) 12:07:11 ]
- LISPでGoogle検索すればゴロゴロ転がってる気が
昔のアスキーのCプログラムブックIIIは独自LISP処理系扱ってるけど 今風の実装じゃないし 個人的には末尾再帰できない独自LISPはあんま魅力ないな 自分で作るならSchemeの方がいい
- 575 名前:デフォルトの名無しさん mailto:sage [2005/09/26(月) 12:11:52 ]
- >>574
末尾再帰の実装なんて普通のLispでもさほど難しくはない。Schemeは full continuationの実装など悩む割に報われない部分で苦労する。 まぁ作ってみるだけなら面白いけど、実用的な処理系は結構大変。
- 576 名前:デフォルトの名無しさん mailto:sage [2005/09/26(月) 12:14:50 ]
- 難しいかどかじゃなくて末尾再帰も標準的でない独自LISPには魅力感じないつってんの
- 577 名前:デフォルトの名無しさん mailto:sage [2005/09/26(月) 12:17:57 ]
- >>576
おまえスレタイ読めるのか? スキームの宣伝は他でやれよ。
|

|