1 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 21:41:07 ] lispを触ってみたい入門者のQ&A 初心者のQ&A 本スレでは恥ずかしくて聞けない人のQ&A 本スレは高度すぎて割り込めない人のQ&A linuxでなくてwindowsでやりたいんですが・・・Q&A lispを使用してC#やJAVAの代替にするための方法(おまけ) ま、ゆっくりたりましょう。 「いいものの本質は、いかなる時代においても変わらない」byパワーズ (list (url pc8.2ch.net/test/read.cgi/tech/1101386936/l50 :part 1) (url pc11.2ch.net/test/read.so/tech/1140012484/l50 :part 2))
369 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 00:33:33 ] どっちでもいいって書いている文献があるというのに お前らは何を決めようとしているんだ? だいたい外国人は日本人みたいに発音とかこだわらんよ。適当。
370 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 00:43:20 ] 「苦労す」 というダジャレがあるから おれはクロース派
371 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 00:46:36 ] シーエルオーエスじゃだめなのか?
372 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 00:49:17 ] 桶
373 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 00:55:43 ] >>368 不自然と思わない根拠は? 似たような例をあげて貰わないと
374 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 01:02:16 ] >>373 不自然と思う根拠を理解できない ってきりがないぞ。>>369 が言うようにどっちでもいいんだよ。 どちらかを不自然と思うのは神経症。
375 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 01:02:37 ] 最近こことか眺めているんだがCLのコードはどうも長くなってしまうような ttp://ja.doukaku.org/
376 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 01:06:43 ] >>374 >どちらかを不自然と思うのは神経症。 俺もそう思う。最近この手のやり取りが増えてる様な気がするが、どうしてだろう…
377 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 01:10:02 ] >>374 根拠は提示されているでしょ 意味のある単語を途中で切って分けている 正式ではどちらでもOKだろうが不自然なことは普通理解出来るはず これが不自然じゃないというなら自然と思える、普通に使っている必要がある 自分は思いつかない、逆ならいくらでも思いつく、SRAM とか だからそれを教えてくれと聞いているんだけど これでも理解出来ない? 神経症とかはまぁ別にかまわないよ
378 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 01:16:32 ] 夏なんだね
379 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 01:37:15 ] MPEG(Moving Picture Experts Group)
380 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 01:45:53 ] JSON(JavaScript Object Notation)
381 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 01:47:42 ] OLAP(OnLine Analytical Processing)
382 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 01:57:24 ] すみませんでした いっぱいありました
383 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 05:42:34 ] slimeのビデオを見てたら途中ミニバッファからコマンド を送っているところがあったのですが、これはslime、処理系 どちらに対して送っていることになるのですか。 helpと打つとslimeのヘルプが表示されるようですし、 change-packageと打つとパッケージが変わるようなので。 また、ミニバッファのCOMMAND:というプロンプトはどの キーにバインドされているのでしょうか (コマンド自体はEmacsの機能?) 一応、マニュアルを見てみたのですがこの辺に触れていなかった ので質問させていただきました。 CLOSで盛り上がってるところすみません。
384 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 07:53:25 ] >>375 「無駄に」長いと思うなら直してやれば?俺はコードの圧縮はアセンブラでなら 楽しいけど Lisp のコードを圧縮するよりは見易いほうがいいな。 >>383 , キーだよ。これは SLIME のコマンドだけど、 SLIME が処理系に SWANK 経由で コマンド送るので change-directory とか処理系も反応する。
385 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 21:21:16 ] 383です。 > SLIME が処理系に SWANK 経由で なるほど、そういうことですか。 私の環境 WinXP+Emacs 22.0.50.1+SLIME 2006-12-12 ですが change-directory 反応してくれました。 384さん ありがとうございました。
386 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 21:30:54 ] 383です。 忘れてました。SBCL 1.0.6 です。
387 名前:352 mailto:sage [2007/08/08(水) 00:21:05 ] 多分このスレを見てくれた人だと思うんだが、何人か投票していただいたようで、thx 票数表示が会員限定なんで具体的な数は書かないけど、あと、数票で 100 票です。 登録に個人情報が要るんでめんどくさいんだけど、もし良かったら、投票してやってください。
388 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 11:40:39 ] 恥を忍んでおたずねします。 最近、Lisp始めたばかりなのですが、 SBCLで関数のパラメータ(引数一覧)を出力する関数が あるようなのですが、 (documentation 'hoge 'function) するとパラメータではなく、関数自体の説明しか出てきません。 SBCLのみの機能みたいなのでmanualに書いてあるだろうと 目を通しましたがわかりませんでした。 出力の仕方を教えていただけると幸いです。
389 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 18:25:08 ] >>388 www.lispworks.com/documentation/HyperSpec/Body/f_descri.htm
390 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 21:06:13 ] >>389 ありがとうございました
391 名前:デフォルトの名無しさん [2007/08/12(日) 10:40:21 ] closの読み方はクロスでもシーロスでもok. この辺は、ukの大学のサイトにあがってる closのチュートリアルの冒頭に読み方として2つがあげられてるくらいです。
392 名前:デフォルトの名無しさん [2007/08/12(日) 10:47:10 ] これのこと www.aiai.ed.ac.uk/~jeff/clos-guide.html >CLOS stands for Common Lisp Object System and is pronounced "see loss" or "kloss".
393 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 11:05:46 ] 発音記号ってネイティブはあんま知らなかったりするのか?
394 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 11:17:15 ] むしろ発音記号がその言語を全然知らない人でも理解できる用じゃね? 自分の母国語の発音を発音記号で理解してる奴はあまりいないんじゃないか。 ネイティブ向けの辞書でも発音記号じゃなくて「そう読めるスペル」で 示してるものもあるよ。その方が発音記号よりもピンときやすいのは自然だろう。
395 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 12:38:09 ] >>393 言語学とかの専門家でないと知らなかったりする。 日本のように義務教育で教えている国は珍しいのではないかな。
396 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 13:23:37 ] >>395 言語学の専門家が使うのはIPAだし、 日本の義務教育で教えている、辞書業界(?)の記号とは若干違うと思うのだが。
397 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 13:25:48 ] 日本語をIPAで書ける日本人がほとんどいないのと同じだな
398 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 13:43:02 ] 日本語だと仮名で書けば問題ないし、実際辞書でもそうなってるじゃん。
399 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 13:59:07 ] >>398 確かに大抵それで何とかなる。 それは英語も同じで、>>392 みたいにして発音を表せる。 細かいことを言い出すとカナでは足りない。 「ラクトース」と「ラクロス」では「ク」の発音が違うとか。
400 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 14:03:52 ] 日本語は言文一致したから、 それをしてない英語とそのまま比較はできんかと。 まあ、板違いだからこのくらいにしといた方がいいかもしれんが。
401 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 14:59:08 ] >>398 日本語学習者にとってはそうでもない。 同じ「ん」でもnとngとか。
402 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 22:03:25 ] おー、俺でCLOS本復刊リクエスト100人になりましたよ。
403 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 00:25:07 ] 祝!
404 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 00:39:00 ] >>402 祝ってやる
405 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 01:09:07 ] >>404 一瞬「呪ってやる」に見えた。
406 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 09:36:04 ] 質問です。 関数型言語って 有る値の集合を有る値の集合へもっていく方法を 記述すると考えてよろしいのでしょうか?
407 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 09:53:28 ] その「値」に「関数」っつーのも含まれてるけど、 まあそんな感じだろう。
408 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 12:11:57 ] >>406 集合とか意味不明 テンプレ読め
409 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 13:05:21 ] >>406 スレ違い
410 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 15:25:00 ] 写像って意味だっしょ
411 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 16:32:48 ] 406はなかなか良い筋行ってんじゃネーノ? karetta.jp/book-node/gauche-hacks/023107
412 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 18:13:22 ] (a b c) という任意の長さのListがあげられたとき このすべての組み合わせをリストとして出力する (a b c ab ac ba bc ca cb) このようなプログラムって皆さんどうやって書きます?
413 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 20:14:40 ] >>411 自演乙
414 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 20:17:27 ] そんなもの書かない
415 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 22:50:36 ] そんなものが書きたくなったら全体の設計を見直すかな
416 名前:デフォルトの名無しさん [2007/08/16(木) 00:30:55 ] AutoLISPってどうなの?
417 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 02:18:55 ] どうもしない
418 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 02:21:21 ] >>412 「すべての組み合わせ」の意味が不明確。 abc とか cba とかが入らない理由は?
419 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 02:34:39 ] もういいじゃん
420 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 07:52:33 ] Lisp処理系ムズすぎ 適当に構造体でリスト作って、 S式パーサ作って、 関数名で条件分岐してリストのメンバをいじくれば良いと思ってたのに
421 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 09:35:35 ] そんな感じで出来ちゃうと思うけどなぁ。 もちろん「優れた処理系」を作るのは(他の言語と同じく)難しいし、 「Common Lispの処理系」を個人で作るのはちょいと無謀だけれども、 この界隈の人間がよくやる「楽しく作るマイLisp処理系」程度なら・・・。 クロージャで少々頭ひねるくらいでは。
422 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 09:41:49 ] >>420 ここら辺参考にならないかな L2Lisp in Ruby(インタープリタ) ttp://codezine.jp/a/article/aid/1492.aspx JavaScriptでつくるSchemeインタプリタの基礎の基礎(lisp, js, webdev, webapp) ttp://codezine.jp/a/article/aid/739.aspx Javaで作るオリジナル言語:ITpro ttp://itpro.nikkeibp.co.jp/article/COLUMN/20060922/248738/
423 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 11:04:02 ] >>420 そんなに難しいかい? 8ビットマシンの頃でも基本の処理系はポイポイ作れた記憶があるんだけど。 実行効率とか下段をVMでとかにすると結構しんどいかもしれないけが俺Lispならそんなに難しいものじゃ無いはずなんだけど。 まさかCommonLisp全部みたいな話とか継続入れたいとか言うスタック操作がマンドクサイこと言うと別かもしれんが。
424 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 13:03:56 ] >>421 ,422,423 www.jsk.t.u-tokyo.ac.jp/~inaba/soft4/soft4-xlisp/soft4-xlisp.html ここ読んでるんですけれど、即死しそうです JAVAとかJavaScriptとかRubyで作ると比較的簡単なのかなぁ
425 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 13:58:15 ] ttp://www.okisoft.co.jp/esc/go.html 俺はここ見ながらC++で作った。 Javaで説明されてるけど、JavaからC++への脳内翻訳はまぁ、それほど難しくないし。
426 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 21:56:36 ] >>424 それで楽になるのはGCだけじゃないかと思う。
427 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 22:05:53 ] 俺 Lisp ネタは本スレで。一応ここは Common Lisp 入門スレなので。 俺 Lisp ってーのはよ、一週間もまじめに取り組めばできちゃう。 で、 99% はやったーできたーの後に「Lisp をものにしたぞ」と勘違いしちゃう。 そこはスタート地点だという事を心してほしい。ほんとに。
428 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 22:22:23 ] CLTL読んでるけどでかい、でかすぎる。 でも楽しい。
429 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 22:33:35 ] 仕様なしで実装だけあるほうが良いという連中が信じられない。 現行バージョンとかそんな殺那的な基準でいいのか……
430 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 22:55:46 ] >>429 少なくとも入門スレでは、言語の仕様が先か実装が先かなどというのは全く本質的な問題ではないと思うが。
431 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 23:16:39 ] 先とか後とかじゃなくて有無の話ね。
432 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 23:50:55 ] >>428 てお?
433 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 01:00:57 ] このスレでCLTLって言ったらCommon Lisp The Language ,Guy L. Steele Jr.じゃないの?
434 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 11:10:27 ] >>428 仕様書(?)の癖に妙に饒舌なGLS節がたまらんよねw
435 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 01:28:40 ] Practical Common Lisp 155ページなのですが、COPY-TREEで((1 2) (3 4) (5 6))を 複製したものとオリジナルが共通で参照するオブジェクトが数値の5,6とシンボルNILってのは 何故ですか?1,2,3,4と5,6の違いが判らないので教えてください
436 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 01:12:49 ] >>435 それ、ここかLisp Schemeスレかで以前俺が話題にした気がする。 そんときは確かめてくれた人がいて著者の勘違いって話だったと思う。 過去ログ見て。
437 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 22:19:43 ] どう勘違いしたんだ
438 名前:435 mailto:sage [2007/08/25(土) 00:57:24 ] Peter Seibel本人にメールしてみました。 「混乱させてスマン、第3刷では直っているハズだから」とのことです。
439 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 13:02:07 ] 俺そういうメールに返信するバイトしてた。
440 名前:デフォルトの名無しさん mailto:sage [2007/08/25(土) 13:21:19 ] 俺はメールしたと偽るバイトしてた。
441 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 13:57:52 ] Emacs Lispでいう(string-to-int)ってCLispにないの?
442 名前:デフォルトの名無しさん [2007/08/29(水) 14:14:20 ] グハラムのANSI Common Lispを読んでいます ループを再帰で書くサンプルが出てくるのですが ループ数が多くなるとスタックがえらく積み上がっていくんじゃないか、 だとしたらループの実現としてはあまりいい方法ではないのではないかと 思うのですが、どうなんでしょう? あくまで「こういう書き方もできるよ」という例なのでしょうか?
443 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 14:28:08 ] >>442 ほとんど末尾再帰だろ 末尾再帰をループに展開できないコンパイラはぶっ壊れてる.
444 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 15:15:52 ] >>441 parse-integer
445 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 19:44:33 ] >>442 > グハラム ちょっと入れ替えただけで急にイスラムな感じになるな。
446 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 01:22:51 ] ではclispはぶっ壊れてると・・・
447 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 02:07:22 ] コンパイルすれば末尾再帰をループ化する>CLISP
448 名前:442 mailto:sage [2007/08/30(木) 02:11:41 ] レスありがとうございました 末尾再帰というものだったら問題ないんですね 少し気になったのですが Lisp界ではよくあることなんですね
449 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 02:30:23 ] >>447 >>273-276
450 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 02:33:05 ] 実際末尾再帰スタイルで書くつもりならSchemeで書いたほうがいい。 Common Lispのはあくまでも最適化オプションでしかないから過信できない。
451 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 04:48:19 ] Schemeは式の評価順序が決まっていないのが嫌いなんだよね。(副作用させんなって言うのは無しね)
452 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 07:46:50 ] >>450 Scheme はコンパイル関連機能があくまでもオプションでしかないから過信できません
453 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 08:37:34 ] ていうか「過信」って言葉がそもそも、実際の在りよう以上のことを信じることであって、 Common LispだろうがSchemeだろうが隣のおばちゃんだろうが、過信しちゃいけないのは同じ。
454 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 09:42:19 ] 「xを過信してはいけない」という言い回しは、単純に過信を戒めてる訳じゃなくて、 「お前はxを過信している」とか「xは過信されがちだ」みたいな意味が入ってる。
455 名前:442 mailto:sage [2007/08/30(木) 11:59:10 ] やっぱり使わない方がいいんですね
456 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 12:08:19 ] >>455 時と場合による.
457 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 12:14:39 ] >>455 lispのような抽象化の高いプログラミングで再帰 を使おうとしないとはかなり不幸だろう. 10年前ならいざ知らず,今はコンピュータのメモリもCPU性能も 有り余るほどある.その中で,ある程度効率を犠牲にしてでも, 抽象化のはしごを上ってわかりやすいアルゴリズムを記述できる のであればそっちを優先すべきでは?
458 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 13:06:02 ] >>455 まあ真面目に入門書の一冊も読むべきだね。 基本がぜんぜんなってない感じ。
459 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 13:24:25 ] >>455 白黒はっきりさせたい性格なのだろうが、世の中そんなに単純には出来ていないのだ。
460 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 13:38:57 ] >>455 ちなみに組込み屋の人ですか?
461 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 02:00:35 ] 455の人気が凄いw
462 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 03:16:20 ] destructuring-bindの素敵な訳語を募集。 野田さんトコだと構造化代入ってなってるけど、`de-'の雰囲気がどこかに 消し飛んでるし`bind'って代入なのか?って気がしないでもない。 漏れの頭では脱構造束縛とか構造分解束縛とかしか思い浮かばないんだが、 やっぱり気持ち悪い? OnLisp翻訳の偉業にケチをつけるつもりはまったくないのでそこんとこだけ 誤解のないよう。英語のまま何気なく読んでる文章をきちんとした 日本語に書き出そうとするのがこんなに面倒だとは思わなかった。
463 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 03:27:09 ] `構造'意識しなくてもいいか。 分解束縛とか分配束縛とかで意味通じるかな。 連投で独り言スマン。
464 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 05:56:15 ] 独り言気持ち悪い
465 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 07:30:18 ] practical-scheme.net/wiliki/wiliki.cgi?OnLispJa >p.96 ほか (leque, 2007/04/14 21:40:45 PDT) >「destructuring」の訳語を「分配」とすることにすこし違和感があります。 >destructuring-bind の lambda-list が単純なリストである場合はよいのですが、 >入れ子のリストになっているような場合も考えると、「分解」「脱構造化」といったような、 >構造(structure)を意識したような訳語の方がしっくり来る気がします。 > >* これはGuy Steele本の和訳で採用されていた訳語に統一した結果です. >ところでせっかく仔細にコメントをいただいているのに, >単純なものしか目を通しておらず,申し訳ありません. >いずれじっくり検討させていただきます.(野田)
466 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 09:37:39 ] 「パターンマッチ」でいいんじゃないかという気が
467 名前:flatline ◆r6EONKKhcc mailto:sage [2007/08/31(金) 10:00:52 ] >>462 ちなみに「構造化代入」という訳はあまり深く考えてつけたものではありません. >>466 複数のパターンから選べないとパターンマッチとは言えないような気がします.
468 名前:466 mailto:sage [2007/08/31(金) 10:30:40 ] そうですか?なんでだろう。
469 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 11:29:00 ] 俺もパターンマッチって感じがする。 マッチに失敗すればエラーになるし。
470 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 18:30:16 ] >>462 気持ちはわかるが、destructuring-bind という固有のスペシャルフォーム名に とらわれすぎの気がする。 まさか「なでしこ」みたいな日本語CLをつくろうって話じゃないんでしょ。 同種の概念に対する一般的なタームとしては分割代入とかじゃない?
471 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 21:09:55 ] >>468 複数の候補からマッチするものを見つけるのがマッチだと思う
472 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 21:11:04 ] >>462 deの雰囲気を残すべきだとは思わない。逐語訳にこだわりすぎでは?
473 名前:466 mailto:sage [2007/08/31(金) 22:52:58 ] >>471 それだけがマッチングとは思えないなあ。 正規表現がマッチするしないって言い方があるけど、 あれは何かを複数の候補から見つけるわけじゃないでしょう?
474 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 23:51:54 ] >>473 「マッチする」という言い方自体が、そもそも「マッチしない」場合の存在を前提にしているのでは? そういう意味では正規表現も多くの場合は複数の候補から見つける操作だと思う。
475 名前:462 mailto:sage [2007/09/01(土) 02:42:29 ] >>470 日本語CL作ろうなんて気は毛頭ありません。 でも見る人が見れば何やってんかバレバレなんですけどね。 >>472 逐語訳にこだわってるつもりはないんですが、Lisp/Schemeのコンテキストで 代入と束縛を同列に扱うのは違和感があると感じるのは僕だけかなぁ。 日本語ではどう表現するのが普通だ、みたいな一般的に受け入れられている のはないんですかね。大体原著で読むのでその辺の感覚がわからんです。
476 名前:flatline ◆r6EONKKhcc mailto:sage [2007/09/02(日) 16:53:41 ] 私はむしろ >>473 に賛成ですが, >>467 の真意はむしろ 「destructuring-bindを「パターンマッチ」と言ってしまうと, Ocaml, Haskellの方面から 『複数の候補から選ぶこともできないのにそんな大層な呼び名をするとは!』と 文句が来そうなので自粛した」 みたいな感じですかね. つーかその後 §18.4で 「パターンマッチングは構造化代入(書籍では分配)の一般化だ」と続いているので... 束縛と代入については,レキシカル・スコープの何たるかを分かってコードが書ける人には 言葉の問題に過ぎず,大した違いではないと思います.
477 名前:flatline ◆r6EONKKhcc mailto:sage [2007/09/02(日) 17:02:45 ] そうそう,On Lispの第3刷が9月半ばに出るそうです. (読者の方々からいただいた修正意見を反映してあります) 「売れた数だけLispの存在感が拡大している」と(粗っぽく)見積もるとすると これは訳者として嬉しいことです. 実際,webをさ迷っていると,これまでLispに縁のなかった人もけっこう買ってくれているようですし. (そういう人には終盤はテクニカルに高度過ぎると思いますが, 「Lisp Hackerのスタイル」的なものは伝わることを期待)
478 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 17:26:50 ] >>477 Lispのなんたるかってあたりがかかれた本って古い書籍が多くてさらに尽く絶版だったりするから ものすごくありがたかったんじゃなかろうかとおもう(対象想定読者層にとって) まじめな話共立出版のbit別冊が売ってたら読むかもしれない層って多いと思うんだけどなぁ。
479 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 17:28:49 ] >> 476 > 束縛と代入については,レキシカル・スコープの何たるかを分かってコードが書ける人には > 言葉の問題に過ぎず,大した違いではないと思います. レキシカルスコープの何たるかをわかってコードを書くに至っていない 入門レベルの読者が読むことを想定した場合は束縛と代入は使い分けるべき、でFA?
480 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 22:46:13 ] レキシカルスコープの何たるかをわかってコードを書くに至っていない人には 縁のない話題だと思うが
481 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 23:52:25 ] あんま流れと関係ないけど束縛だの代入だのより、スコープとエクステントの概念を叩き込むべき。 アセンブラと C を覚えて万能感に浸っていたかけだしのヘタレだった俺は、これを叩き込んでくれた師匠に本当に感謝している。 副作用だの破壊的操作だのは結局物理レベルではレジスタの値変更してんだからよー キタナイ現実を見ないのが美しいってのは Schemer にゃーお似合いだが Lisper はそんな風になるべきではない。 つうか訳語は分配でいいような気がするけど…別に実際にバラすわけじゃなくて、元の構造の部分を変数に束縛するだけだし…
482 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 01:18:14 ] >>481 は今でもなにもわかってない事がわかった
483 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 05:50:47 ] ああ、それは二十歳くらいの頃によくかかる病気ですね。 自分の人間観察眼に根拠の無い自信持っちゃって、あちこちで誰かの言葉に触れては 「こいつはわかってない、俺にはそれがわかる」って小鼻をひくひくさせてしまうんです。 あと5年もすれば、思い出すだけで死にたくなる過去になりますよ。
484 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 06:52:52 ] わかってるやつがなんでにちゃんなんかやってんだろ
485 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 07:23:28 ] おまえのどうるいだけがにちゃんやってるわけじゃないからだよ
486 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 07:34:54 ] >>485 君は集合の基礎を覚えた方がいい ベン図とか
487 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 08:05:32 ] まずは君がコミュニケーションの基礎を学ばないことには
488 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 10:14:22 ] わかってない奴すべてを含む集合は果たして平穏無事であるか
489 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 12:58:41 ] あるときっと。信じれば夢はきっと叶うさ。
490 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 15:12:26 ] 2ch で遊ぶのはいい加減にして、早く誰も読まない論文を書く作業に戻るんだ。
491 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 16:19:32 ] 論文を書くためにはネタを仕込まないとね。 それはともかく、Common Lispで書いたソフトをコンパイルしておいて 他の.exeから呼び出して実行するなんて使い方はできるものだろうか? 分かる人が居たら教えてくれ。 既存のGUIと通信を行うモジュールを流用して計算エンジン部分だけLispで作ってみたい。 あ、プラットフォームはその既存のGUIの関係でWindowsです。
492 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 16:27:22 ] 誰も読まない論文 ってのはなかなか哀愁を誘う良い言い回しであるなw
493 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 16:45:25 ] ライトオンリー
494 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 18:25:39 ] Lispって科学技術計算に向いてる?
495 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 19:26:44 ] 愛を育てるのには向いてる
496 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 19:30:54 ] 講座初日に眼鏡を忘れ、倫理学と論理学の教室を読み間違えた挙げ句、出席を取らない講師に突然愛を語られたみたいなものだろうか?>>495
497 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 19:36:39 ] >>491 できる。教えてもらわないと出来ないような人には難しいかもしれないが。
498 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 20:17:54 ] は?
499 名前:495 mailto:sage [2007/09/03(月) 20:21:37 ] 愛と AI をかけました………………
500 名前:デフォルトの名無しさん mailto:491 [2007/09/03(月) 21:53:12 ] >497 Thanx! 可能だと言う事がハッキリするだけでもやる気が出るよ。 何しろこっちはLispに関して全くの素人なので これから勉強しながら方法を探すよ。 ところでそういう事に便利そうな商用Lisp (Allegro Common Lispなど)を使えとか 言うんじゃないよね。あれ、高いからな。 自分ではKCLを使えばコンパイラが Cのソースを吐いてくれるそうなので、 そっちをいじれば何とかなるかなと思っている。
501 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 22:16:45 ] ACL は Express エディションならフリー。 ヒープ制限があるので大規模な処理は無理だが。 KCL は GNU に寄贈されてメンテナがかわりにかわって GCL (GNU Common Lisp)という 名前になってる。派生した ECL ってものある。 つうかソケットで通信とかなら C のソースがうんぬんは不要だと思うけど…。
502 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 22:33:05 ] Lispworksを日本で購入できる場所ないのかな?
503 名前:500 mailto:sage [2007/09/03(月) 22:47:13 ] >501 ACLのExpress editionはは使ってみようとしたんだが なぜか私のデスクトッブにはダウンロード出来なかった。 試しに古いノートPCにやってみたらできたので どうもIE7が邪魔してるような気がする。 GUIモジュールとの通信はソケットとかじゃなくて 単純に呼び出し時の引数渡しみたい。 まだ良く調べてないが。
504 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 23:07:59 ] >>503 フーム…ちなみに C と Lisp の経験はそれぞれどれくらい? あと、まずその GUI モジュールとやらについて一通り勉強するのが先だと思う。 今の状態だと、たとえば Lisp じゃなくて Python で〜ってケースでも どこから手をつけていいかわかんない状態でしょ?まず、ターゲットをよく知らないとね。 大抵の C のライブラリは当然 C の関数呼び出し形式のインターフェースしかない。 他のシステム(Lisp に限らないよ。ネットワークのむこうの C のプログラムとかね)と繋ぐなら、通信部分は自分で作ることになる。
505 名前:491 mailto:sage [2007/09/03(月) 23:10:52 ] あ、 「既存のGUIと通信を行うモジュール」と言うのは GUI及びLAN経由で他のPCと通信する機能を 兼ね備えたモジュールがあってそこから 計算エンジンが呼び出される構成って事。 書き方が紛らわしかったね。
506 名前:503 mailto:sage [2007/09/03(月) 23:42:18 ] >504 お察しの通りCでも大きなブログラムを一から書いた事は無い。 せいぜい教科書の演習問題レベルか他人の書いたブログラムを ちょっと変更したくらい。Lispの経験はほとんどゼロ。 そんなレベルで難しい事をやろうとするなと言われそうだが まあ、趣味でやってる事なので。 まずはLispで書いたソースをコンパイルして 他のEXEから呼び出す事が可能なモジュールを 作れるかどうかを知りたかったのよ。
507 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 00:04:43 ] 共有ライブラリを生成できる処理系はいくつかある。 有償なら ACL, LispWorks、無償なら ECL (GCL もできるのかな?使ったことないから知らん) あたりで可能。 Windows で使えるかは知らないけど。あと、この機能を使うにゃー C に加えて Lisp の知識も要求される。 つうわけで、技術的には可能だが、たぶんあなたの期待してるようなものじゃない。 残念ながら今の Lisp の世界では「Lisp から C のライブラリを呼び出す」のが一般的なんだよねぇ。 Foreign Function Interface といって、C のライブラリを Lisp から呼び出す機能。 ECL みたいに C のプログラムに埋め込んじゃえるタイプのもあるが、これをやるにも C と Lisp 両方の 知識が要求される。逆に知識があれば VB に埋め込んだりもできる: www.cs.stevens.edu/~dlong/hacks/vbecl/index.php とりあえず C か Lisp、どっちかはマスターしよう。Lisp ならこのスレで力になるよ。
508 名前:491 mailto:sage [2007/09/04(火) 00:17:44 ] 結局のところ、Lispの関数を呼び出す時のパラメータ形式と (多分)Cが関数呼び出しする時のパラメータ形式を変換する 小さなモジュールを作って間に挟めばこの目的にはOKって事かな? そうすればLispコンパイラが吐き出すCのソースはいじらなくても、 objの方をリンカーにかけてexe化するだけで良いのかな、多分。
509 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 00:48:16 ] うーん、まず Lisp の側からつっこむとね、まず貴方はデザイン上の撰択をしないといけない。 ECL を使うと仮定すると次のような方法がある。 1. GUI ライブラリが DLL として提供されているなら FFI 経由で Lisp から使う (この場合、コンパイラの出力をいじるとかは必要ない) 2. GUI ライブラリの機能をラップして DLL にして Lisp から使う 3. GUI ライブラリをソケットとか別プロセスから操作できるようにしたてて、Lisp からはそのインターフェースで操作する 4. ECL の機能をラップした DLL を作成して、それを C プログラムにロードして使う 4. しか眼中にないようだが、それは要求されるスキルも高く、かつあんまり楽じゃない。たとえば、Lisp の知識がないと あるオブジェクトを管理しているのは Lisp の領域なのか C の領域なのか区別をつけることすら難しい(…と思うけど、どう?)。 あとは、C をはじめたばかりのようなので、プログラムといえばコンパイラでコンパイルして exe か dll にしたもの、 というイメージがあるんだろう。ECL で「コンパイルする」というと確かにネイティブコードを生成するが、それは exe でも dll でもないんだ。(まぁ、実行形式や共有ライブラリも生成できるけど…) > (compile-file "foo.lisp") ;; gcc でコンパイルしてネイティブコードを含む .fas ファイルを作成 foo.fas > (load "foo.fas") ;; .fas をロード
510 名前:508 mailto:sage [2007/09/04(火) 00:52:52 ] >507 そうですか、上で書いたような安直な方法は多分使えないと。どうしようかなー? Lispから呼び出せるGUI&通信モジュールを自作するのは多分もっと大変だし。 あまり大変ならLispでエンジン書くのを諦めるしか無いかな? 最後にひとつだけ質問。 (商用Lispの付加機能じゃなく)一般的なLispシステムのコンパイラが吐く objはそれ単体では自立したモジュール(exeやdll)には出来ないって事ですよね。 ガーベッジコレクションとかが欠けてるし。
511 名前:510 mailto:sage [2007/09/04(火) 01:15:26 ] >509 ちなみに私が使おうと考えていたGUIは ライブラリ形式ではなくて一固まりのモジュール(.exe)なのです。 それがdllを介してあるいは直接にエンジンを呼ぶ形式。 なのでこちらからは呼べなくて呼び出される一方なのです。
512 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 01:33:31 ] まぁ、まず Lisp を勉強しようや…。C とは違う部分もあるんだから。 実行形式には「できる」。ただ、C のランタイムは libc や mcsvcrt としてシステムに既に存在している場合が多いけど、 Lisp のランタイムは普通のシステムには存在しないので配布物に含むことになる。 商用 Lisp はこの時に、コンパイラ機能とか配布物に要らないだろうという機能を削ったりできる。 CLISP で作成した .exe := ランタイム数メガ + プログラム部分 => 数メガ ECL で作成した .exe := プログラムサイズ + libecl.dll (4Mくらい?) SBCL とかはネイティブコードコンパイラを備えているため、ラインタイムとコアイメージはでかい。 10M を余裕で超える。C でいったら GCC がまるごとついてくるようなもんだからね。
513 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 01:40:48 ] >>510 ふーんけったいなライブラリ(って言うの?)だね。いわゆるプラグイン形式って感じかなぁ。 すると DLL を与えるしか方法がない感じなのかな? しかもインターフェース固定か。勘でいってるけど、あんまり Lisp のインクリメンタルな開発を活かす機会はなさそうかなぁ。 外からいじれるようにしたりして嬉しい? 直接エンジンを呼ぶってのはよくわからないな。見てみないとよくわからんね。非公開のやつなの?
514 名前:510 mailto:sage [2007/09/04(火) 02:17:24 ] >512 実行形式にはできるんですね。 そりゃそうか、Basicでも出来たもんなあ。 配布イメージがでかくなるのは別に構いません。 >513 そうなんですよね。 良く考えたら既成のGUIモジュールから呼べるように 毎回コンパイルしてたらインクリメンタルな開発手法が 使えなくてLispを用いる意味があまりなくなりますね。 デバック用途のためのみであっても GUIと通信モジュールは自作するしかないか? で、最後に可能なら既存のリッパなGUIから呼べるように細工すると。 いや、いろいろ教えて頂いて有り難うございます。
515 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 11:52:52 ] >>514 図表を扱う向きではないけどTKでよければwindowインターフェースはある。 リアルタイムに何か表示するならOpenGLのインターフェースもある。 なのでこれらで間に合う範囲ならそれ程困らないが、ポトペタなウィンドウモジュールが欲しいとなると 商用のを買わないとダメポ。
516 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 14:07:03 ] Common Lispで書いたプログラムを起動してそれとソケットで通信するものを DLLとして作成するというのはどうかな。 DLLの関数はそのプログラムにお伺いを立てて下されたお答をそのまま返す。
517 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 15:13:18 ] CLでDLL作れるの?
518 名前:514 mailto:sage [2007/09/04(火) 19:55:45 ] >516 それグッドアイデアですね。 そのやり方ならコンパイル前(Lisp処理系から起動)でも コンパイル後(GUIから呼び出されて起動)でも 最悪DLLさえ作り分ければ、きっとうまく行きそうな気がします。 その方針でやってみる事にします。 皆さん、いろいろ有り難うございました。 Lisp絡みで分からない事が出て来たら 質問させて頂きたいので、 その時はまたよろしくお願いします。
519 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 23:16:38 ] GoogleからLisp VMとOSが無料配布されるという夢を見た。
520 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 02:04:10 ] lispなシェルって無いの? > (echo "hoge") hoge みたいな奴
521 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 02:16:25 ] >>520 MonaOSにSchemeなシェルがある
522 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 02:16:45 ] >>520 clisp.cons.org/clash.html
523 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 02:24:15 ] >>520 www.scsh.net/
524 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 05:29:54 ] 俺なんかGoogleがLispマシン作ってただみたいな値段で売り出す夢見た。\(^O^)/
525 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 05:42:02 ] アフリカ起源のLispは猿が二股の木を組み合わせてやってたもので、 エバル猿が仕切ってる、ってなんかで読んだのですが GoogleがLispマシンで世界制覇したのち猿の惑星になるのかもしれないな\(^o^)/ 何言ってんだ俺w寝よ…
526 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 09:48:38 ] てか、おまいらそろいも揃って中村正三郎かよ!って顔文字使ってやがるな(w
527 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 10:59:52 ] \(λ ^o^)/
528 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 12:51:50 ] /(^λ^)\
529 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 13:52:10 ] Goolips作ろうぜ
530 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 16:01:44 ] Googlispとは… ↓
531 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 16:03:33 ] (google '(googlisp))
532 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 20:27:51 ] しかし実装はPythonだ(藁)
533 名前:デフォルトの名無しさん mailto:sagd [2007/09/08(土) 13:18:18 ] (OTZ =3 >>532 )
534 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 16:25:12 ] (cons "人生" "オワタ") => \(^o^)/
535 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 15:12:01 ] Lisperの諸君もどってきてくださk><
536 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 15:14:34 ] ちょっくら Haskell してくるε≡≡ヘ( ´∀`)ノ
537 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 21:05:05 ] >>535 near the you.
538 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 00:32:41 ] WindowsでScheme用のエディタにEmacs使いたいんだけどよくわからむ。 Gaucheの解説サイトの.emacsそのまま作ったんだけど、LispboxについてたEmacsじゃ駄目なのかな。
539 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 02:54:42 ] どこがどうわからんのか説明できる程度までは自分で調べてくれんか
540 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 04:18:48 ] scheme の話題はこっちで。 pc11.2ch.net/test/read.cgi/tech/1186922295/
541 名前:538 mailto:sage [2007/09/18(火) 12:50:38 ] スレ違いごめん。
542 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 22:49:22 ] >>538 いやいやお若いの。このスレに立ちよったのも何かの縁。 Common Lisp も学んでいっちゃぁどうだね?
543 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 23:36:14 ] come on lisp
544 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 23:49:07 ] 寒いオヤジギャクを思いついても、書き込まないほうがいいと思うんだな
545 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 00:29:32 ] オヤジしかいないんだから、別にいいと思うが
546 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 00:38:11 ] >538みてーに偶に迷い込む若ぇ奴が近寄らなくなるぢゃねーか!
547 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 00:46:07 ] >>543 その発想は無かったw ちょっと笑ってしまった俺もオヤジの仲間入りか…
548 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 00:58:39 ] >>543 【審議中】 |∧∧| (( ) ) (( ) ) ((⌒ ) __(;゚Д゚)___ (( ) ) (( ⌒ ) (( ) ) |⊂l l⊃ | ノ火.,、 ノ人., 、 ノ人.,、  ̄ ̄|.|. .|| ̄ ̄ γノ)::) γノ)::) γノ)::) |.|=.=.|| ゝ人ノ ゝ火ノ ゝ人ノ |∪∪| || ∧,,∧ || ∧,,∧ || ボォオ | | ∧ (´・ω・) (・ω・`) ∧∧ | | ( ´・ω) U) ( つと ノ(ω・` ) ~~~~~~~~ | U ( ´・) (・` ). .と ノ u-u ( ) ( ノ u-u `u-u'. `u-u'
549 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 01:04:34 ] まあありだろ
550 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 01:26:54 ] 何でもありが Common Lisp の美点だべさ
551 名前:538 mailto:sage [2007/09/19(水) 02:42:51 ] そんな若くないけど、優しいお言葉ありがとうですお SICPとアセンブラの本を読み終わったらLISPやるつもりですお バスコン初心者なので両方いっぺんは無理ですお 今後の予定 絶版の湯浅さんの本を押さえてあるのでそれやったら グレアムの本2冊買うつもりですお ここまで行けるかはかなり謎ですがおw 今は他の勉強する気ないんですがネットワーク管理任されそうですお 素人なんでそっちも勉強しなくてはならんのですお( ;^ω^)
552 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 03:52:45 ] >>543 ナイスボケ
553 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 07:08:07 ] lispっておっさんの言語なの?
554 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 08:00:05 ] 543 をはじめとするおっさんどもが要るだけだろう 俺はヒキコモリ高校生
555 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 08:14:02 ] 必要なのか
556 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 11:12:47 ] 以前から不思議だったんだけど2chのスレってどんな過疎スレでも「ハゲ」と「おっさん」話が持ち上がると妙にスレが伸びるんだろう?
557 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 12:37:58 ] それはry
558 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 15:21:46 ] >>556 2chに出入りしている腐女子は「ハゲ」×「おっさん」と 「おっさん」×「ハゲ」のどっちが良いかでご飯3杯いけるから。 因みに数字板ではこれがマジだから困る。
559 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 23:43:01 ] イケメン禿のおっさんがLISPとは何かを語ると 腐女子がえびぞりながら泡吹いて失神するぞ。 クワトロのせりふで決めればもう涎流しっぱなしで再
560 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 01:05:39 ] >>556 そういう言葉で煽るのは、自分はそれらのキーワードと無縁だと思ってる層で、 そういう層は大抵若い世代、言い換えれば、経験とか知識に乏しいまま全能感だけ持て余してる世代。 つまり、そういう話が持ち上がると伸びるのではなく、アホなことでスレ伸ばす層が持ち出しがちな単語が そういうものなんでは。
561 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 04:33:26 ] どなたかお助けください。 sbcl,clispでキーボード操作を受け付けるプログラム書いてあそんでいるのですが双方で共通にttyの設定をraw,noecho似する方法はありませんでしょうか? 現在clispでは(shell "stty raw -echo")を,sbclだと実行前に同様のコマンドを実行しています。 ただこれだとclispはreadlineがカーソルキーを食ったままですし、sbclは抜けないと元に戻せなくて困っています。
562 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 07:50:19 ] CLISP なら SCREEN パッケージも入ってると思うけど。 あとは EXT:WITH-KEYBOARD とかでCUI できる。 SBCL と共通にしたいなら ncurses を使うのがいいんじゃないかな。
563 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 11:54:18 ] >>562 ありがとうございます、ncursesで検索したらcl-cursesとかcl-curl(cURLじゃないんですね)とかいろいろ出てきました。
564 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 11:04:13 ] 最近cgiをLispで書くのがマイブームです><
565 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 11:18:53 ] それたのしそうですね>< どうやるんですか><
566 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 23:01:52 ] ViaWebでさえサーバープロセスが動いていたのに 何でCGIで書くのかと問い(ry
567 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 23:02:53 ] 普通にかけますよ clispなら小さいからプロセス起動なcgiでもいけますし、sbclならfastcgi使うとごっつはぇぇでし。
568 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 23:07:01 ] >>566 cgiつーのは割と身近で小さめの実用プログラムな側面があるのでそういう否定のしかたはよろしくないような気がする。
569 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 00:46:01 ] 結局のところお前らCLispで実際に使えるプログラムかいてないのか?
570 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 01:07:35 ] エディタのスクリプトならバリバリ……
571 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 07:52:21 ] プロトタイプ作成とかデータ整理とか表には出せないが使ってるよ。 でも上にはプロトタイプ専用の「ゲテモノ」と認識されてるんでね、テストまでしか使えない。 人月単位の人海戦術で作るとな……プロトタイプのほうが高速かつ高機能とかマジ泣ける… 仕様通りちゃんと動いたとしても、結局素人を集めて人海戦術で作らないと安心できない、それぎゃ現実の仕事。 でもテスト用のプロトタイプがあるだけでもマシなほうさ。バリバリのウォーターフォールでデスマーチ化ってとこ多いしね。 …なんか愚痴っぽくなったな、スマン。
572 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 08:03:45 ] おれ、グーグルに入れたら「ウォーターフォール」卒業して 先端技術でバリバリ働くんだ。
573 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 10:20:25 ] >>571 速くHackerがたくさんいる企業に就職しなおすんだ!
574 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 12:49:17 ] (setf test-list '(("above" . "上記の,方向,場所などを表して.") ("propose" . "提案する") ("afforded" . "余裕がある,can, could, be able toを伴って") ("dedicated" . "専用の"))) 見たいなりスト作って評価したら Coding system iso-lating-1-unix not suitable for "000c4e(:emacs-rex (swank:interactive-eval)) 見たいなエラーがでるんだがCLispってUTF-8対応じゃないの?
575 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 13:55:37 ] glibc か libiconv サポートがある環境なら UTF-8 のエンコーディングは備わってると思うよ。 SLIME (emacs) <---> SWANK (lisp) の通信設定がデフォルトの値 iso-lating-1-unix なんじゃないかな。 iso-lating-1-unix なストリームに utf-8 の文字流し込んでエラーになってるんだと思う。 ;; SLIME 側の設定 (Emacs) (setq slime-net-coding-system 'utf-8-unix) ;; SWANK 側の設定 (CLISP) (setq swank::*coding-system* "utf-8-unix")
576 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 17:06:26 ] >>575 できました! ありがとうございます
577 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 16:11:21 ] >>571 ナカーマ w
578 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 17:34:40 ] 相異なる要素からなる系列 seq の要素中 2 個を選んだ組合せをすべて表示し場合の数も表示する関数 (pair seq) で,例えば (pair abcd) が (A B) ; A を選び,残りの B,C,D から B を選んだ組合せ (A C) ; A を選び,残りの B,C,D から C を選んだ組合せ (A D) ; A を選び,残りの B,C,D から D を選んだ組合せ (B C) ; B を選び,残りの C,D から C を選んだ組合せ (B D) ; B を選び,残りの C,D から D を選んだ組合せ (C D) ; C を選び,残りの D から D を選んだ組合せ 6 ; 場合の数 4C2=4!/{2!×(4-2)!}=6 のように評価されるものを,必要なら関数 app を用いて定義せよ。 (defun merg (seq1 seq2) (if (null seq1) seq2 (cons (car seq1) (merg (cdr seq1) seq2)))) (defun app1 (seq elem) (merg seq (cons elem NIL))) このプログラムを教えてください
579 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 00:54:33 ] 宿題ならちっとは考えたフリしろよw もしくは宿題スレへ(lisperがいるかどうかは知らんが、lisp以前の問題だ)
580 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 03:05:54 ] >>578 もちろん教えてあげますよ。 ただ、宿題を持ち込む人は多いんだけど情報不足なんだよね。 1. 締切はいつまで?どんなレベルの解答がお望み? 2. Lisp の授業ははじまってどれくらい?一ヶ月?三ヶ月? 3. 教科書はなにで、どれくらいまで読んだ? 4. ズバリ答えがほしいの?教育的ヒントがほしい? 別にズバリ答えがほしいならそれで即解答しますんで、正直に答えてね。
581 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 09:53:44 ] >>580 正直ズバリ答えてほしいのが本音ですが・・・ ヒントだけでも良いです。 締め切りは明日で、Lispは半年程やってます。教科書はありません。
582 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 12:55:52 ] 教科書がないって、困ったな。HyperSpec とか読んでる? 指標がないと、どーかげばいいのかこっちも悩むじゃねーか。 たとえば、下のコードで何かわからない点はある? (defun pair (seq) (loop with counter = 0 for lst on seq for e1 = (car lst) do (dolist (e2 (cdr lst)) (format t "(~A ~A)~%" e1 e2) (incf counter)) finally (format t "~D~%" counter)))
583 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 13:19:14 ] たぶん再帰で書いてほしいんだと思った
584 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 13:34:09 ] フーン。じゃあこうか? (defun pair2 (seq) (labels ((rec (x xs n) (if (null x) n (let ((n (rec2 x (car xs) (cdr xs) n))) (rec (car xs) (cdr xs) n)))) (rec2 (e x xs n) (if (null x) n (progn (format t "(~A ~A)~%" e x) (rec2 e (car xs) (cdr xs) (1+ n)))))) (format t "~D~%" (rec (car seq) (cdr seq) 0)))) ブツブツ。ほんと世の中 Scheme に毒され過ぎだぜ…。過度の一般化じゃないか? そりゃ再帰のほうが一般的なのはわかるが、特殊なケースのほうが記述が短い場合に反復を使うのを恐れるべきじゃない。 なんだったら LOOP や DOLIST が再帰で実装されていると思えばいいんじゃないか?
585 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 13:35:14 ] すまん、インデントがメチャクチャになっちゃった orz
586 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 13:50:45 ] まあ普通はループで書くと思うけどね。宿題だから再帰するのかなと。
587 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 13:53:05 ] 本題から外れるが、 >>584 >>反復を使うのを恐れるべきじゃない。 禿同。再帰を使うだけで問題の本質は露わになる、わけじゃない。 時と場合を選べば、LOOP最強。
588 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 14:22:06 ] >>584 > なんだったら LOOP や DOLIST が再帰で実装されていると思えばいいんじゃないか? よくない。再帰で実装されてると想定して、たとえば (let (r) (dolist (x '(a b c) (mapcar #'funcall r)) (push #'(lambda () x) r))) => (C B A) となることを期待すると実装依存になってしまう。
589 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 14:50:13 ] loop って末尾再帰とは限らないんだっけ?
590 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 15:02:38 ] >>582 >>584 わからないとこ多いですね↓ loopとかforとか習ってません 関数の定義、分岐(if とかcond) リスト(list car) データのリンク(cons) とかですね。習ったのは。すいません もうすこし自分で考えてみようと思います
591 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 15:27:23 ] >>588 わざわざできない例をもってくるなよ…。 その例だと束縛をキャプチャしてるけど、その束縛を DOLIST が書きかえるんだからおかしいのは当然だろ。 束縛のキャプチャは CL じゃあ常識なんだから、CL の人はそんな事しないし気をつけるもんなんだよ。 Scheme かぶれはなんでもかんでも Scheme で考えるからハマるんだろう。 この例に限定しているつもりだったが、もちろん一般的には CL では再帰で実装されていると考えてはいけない。 俺の書き方に問題があったのは認める。普通 CL な人は IF と GOTO による実装をイメージする(macroexpand すれば一目瞭然)。 >>589 というか CL の DO* や LOOP は基本的に GOTO と IF で実装されてるから、ほぼ確実に再帰じゃない。 俺は再帰で実装している処理系を見たことがない。 >>590 やっぱり Scheme 風味な授業なんだな。じゃあ 584 のほうを提出したまえ。
592 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 15:39:20 ] CL から見れば 588 の例なんかは for(i=0;i<n;i++){list.push_back(&i);} ってやって、あとで i のポインタの先の値をみて文句を言うのと同じようなダメさを感じるわけ。 再帰でしか物を考えられない Schemer は、CL を使うときはもっと考えを切りかえてからきてくれ。 Scheme は良いものだが、だからといって他のすべてのその思想を押しつけることなどできないのだ。 身近だから CL を煽りにくるんだろうけどさ……所詮どっちもマイナーな世界だ。お互いを尊重して仲良くいこうや。
593 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 16:08:10 ] Schemer だって再帰を多用するわけじゃないでしょ Shiro さんも言っていたけど fold や map、for-each や srfi-42 などのユーティリティを多用するのがスタイル loop 的なものはあんまり使わないと思うけどね
594 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 16:15:30 ] >>591 (format t とか??なんですが
595 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 16:55:32 ] >>594 おれは>>584 じゃないけど、おまい授業出てないだろ。 format t は printf STDOUT みたいなもんだよ。~% はタダの改行。
596 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 17:00:33 ] 授業に出てるなら、こんなとこで質問する必要はないのでは?
597 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 17:19:39 ] 宿題を張った奴にここまで優しいのはこのスレくらいじゃね?
598 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 17:59:27 ] 宿題にはもっと妙な答えを教えてあげようよ。 今回のだったら tagbody と go で書くとか。
599 名前:デフォルトの名無しさん [2007/09/30(日) 19:15:23 ] Scheme の srfi-42 を使って書いてほしいんです><
600 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 19:16:58 ] >>599 そりはすれち
601 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 21:33:06 ] >>599 Gauche でやってみたよ (use srfi-42) (define (pair seq) (let1 counter 0 (do-ec (: xs seq) (: ys (cdr (member xs seq))) (begin (format #t "(~s ~s)~%" xs ys) (inc! counter))) (format #t "~d~%" counter))) gosh> (pair '(a b c d)) (a b) (a c) (a d) (b c) (b d) (c d) 6 >>600 スレちがいゴメン
602 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 22:43:18 ] >>601 うほ! ありがとございます! srfi-42 ムズカシイんです>< Gauche のマニュアルだけでは良くわかりませんでした>< サンプルがいっぱいのってるチュートリアルみたいなものがどっかにあれば、、、 スレ違いスミマセン
603 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 00:27:06 ] >>594 出力につかっていいの関数は何?使ってる処理系は何? 最初に聞いた質問にはちゃんと意味があって、こーゆう状況を防ぐために教科書や処理系を聞いてたんだよね。 大抵の環境なら (print (list a b)) と (print counter) にすれば動くと思うけれど。 >>598 そんなコードを見せても意味があるとは思えない。 俺はこの質問者もひょっとしたらモノになるんじゃないかと期待をしているのだよ。
604 名前:デフォルトの名無しさん [2007/10/02(火) 00:02:57 ] >>584 labelsやletやformatを使わないでかけますか?printコマンドは知ってます
605 名前:デフォルトの名無しさん [2007/10/02(火) 01:08:09 ] 任意の型のデータxを第一引数、cons型のデータのリストdを第2引数として取り、dの要素のうちで、そのfirst部分がxに一致する(ただし比較はequal()で行うものとする)ものがあればそのような要素の最初のものを返し、さも無ければnilをかえす関数assoc_equ()を定義せよ この問題できないんですけどどなたかできませんか?よろしくお願いします><
606 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 01:16:13 ] >>605 (defun assoc_equ (x d) (assoc x d :test #'equal))
607 名前:デフォルトの名無しさん [2007/10/02(火) 02:14:08 ] できました!ありがとうございます!!! 書き方がまだ習ってない技法なので、もっと簡単に書き換えるとどんなのになるのでしょうか? よろしかったら教えていただけませんか? ループなどでもできると聞いたので。。。
608 名前:デフォルトの名無しさん [2007/10/02(火) 02:20:35 ] その昔、テーラー展開の式が書いてあってこれを証明せよって問題があった。 で、その回答に「テーラー展開より」って書いたやつがいたのを思い出した。
609 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 02:27:10 ] コーモンリップス
610 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 02:38:30 ] >>609 夜中にそんなこと言ってるからおまえは駄目なんだよ
611 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 03:04:53 ] (´・ω・`)こ、こーもん・・・
612 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 22:22:06 ] >>607 半年で let がでてこないのはすごいなぁ。 書いてもいいけど、もう締切は過ぎたんじゃないの? ループによる解答は 582 で出てるよ。
613 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 05:12:01 ] ある情報を処理するアプリケーションをC言語で書きました。 で、そのアプリケーションは処理結果としてdouble型の数値を3つ結果として出力します。 ここからが質問なのですが、 ウェブサーバを立ち上げて、クライアントが情報を入力すると、このアプリケーションが処理して 処理結果の数値をデーターベースに格納出来るようにしたいんです。 この用途にKahuaは使えるのでしょうか? もしくはコレが出来るライブラリみたいな物は有りますでしょうか?
614 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 12:28:35 ] >>613 そのアプリケーションをあなたが書いた物と仮定する。 やりたいことは可能だが、意味のある事じゃない。 むしろ元アプリケーションをfastcgiライブラリを使うように少し修正してmod_fastcgiを使うか shellでcgiを書いて受け渡す方が楽だろう。
615 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 22:17:49 ] >>614 意味がないとまで断定するこたぁないと思うが。 AllegroServe で R と連携する例。 cl-www.msi.co.jp/solutions/knowledge/lisp-world/r-demo/r_fuelframe
616 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 23:14:32 ] >>615 元コードがCで書かれていて、さらにKahua上から制御できるかいと聴かれているのだから意味が薄いって事なんだよ。 しかもあなたの提示はAllegroServeじゃないか。 そりゃ元コードがCommonLispだったら楽しそうだし、もしも元コードがSchemeで書かれていればKahuaでの実装に美しさを感じるだろうことは否定しないんだけど。 ちなみに僕のおすすめはFastCGIでLisp実装っていうもっと尖っているけどApacheあたりと仲良くモードです。
617 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 23:38:40 ] ヒント: ここは Common Lisp 入門スレ Kahua でも AllegroServe でも別にいいんじゃね? 標準入出力/パイプ/ソケットで制御するなら別にどっちでもかわらんだろう、と思って R をごにょごにょする例を紹介したのだが。
618 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 23:51:05 ] いいじゃん、「意味」なくても。 >>613 の要件ってLisperが気にするほど効率要求されてないと思う。 だとしたら、せいぜい AllegroServe+FFIとか、gauche からCを呼びだす方法とか (おれはkahua知らないけど)、軽く面白そうな選択肢を教えてあげりゃいいんじゃね?
619 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 23:52:08 ] >>617 いや、CommonLispスレに元CコードをKahuaとまぜこぜ可能かって聴かれたからこそあの回答なんですけど orz そりゃ僕だって全部CommonLispでってのはスレ的に正しいとは思うけどあんまりなんじゃないかい? なんとなく質問した奴の状況が感じられる状況と似た境遇にあった俺が2ch的にあまちゃんなんだろうけどさ。
620 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 00:12:13 ] 「元CコードをKahuaをまぜこぜ可能か」って質問だったの? 「アプリケーションをC言語で書きました。」だからスタンドアロンな実行バイナリをイメージしてたよ。 んで >>615 を紹介したわけ。別に Kahua でもいいかなーと。run-program で起動して結果をうけとるでもいいんじゃねーと。 あくまで外部コマンド + Lispサーバで、「全部CommonLisp」とか書いたつもりはないけど…。
621 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 00:24:45 ] >>620 あー、今夜の僕は読解力ないかも(週も半ばなのに大分呑んだし) 僕が解釈したのは元の計算コードをCで記述済みでウェブサーバにKahuaを使った場合にそのCコードの産物とどうやってやりとりしたらいいの? って事だったんで、そこまで境界がきれいにわかれてるならLispに拘らない方がいいのじゃないのっていうスレ的には正反対の結論がでちゃったんだ。 ;;;うーむ、今受験の引っかけ問題や詐欺師がきたら死ねるなぁ。
622 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 18:49:58 ] (setq abcd (list 'A 'B 'C 'D)) (defun merg (seq1 seq2) (if (null seq1) seq2 (cons (car seq1) (merg (cdr seq1) seq2)))) (defun app (seq elem) (merg seq (cons elem NIL))) (defun comb (seq) (defun ith (que i) (if (= i 1) (car que) (ith (cdr que) (- i 1)))) (defun lp (tmp i n) (print (app (list (car tmp)) (ith tmp i))) (cond ((null (ith tmp 3)) n) ((null (ith tmp (+ i 1))) (lp (cdr tmp) 2 (+ n 1))) (T (lp tmp (+ i 1) (+ n 1))))) (lp seq 2 1)) の関数combを変更して 相異なる要素からなる系列 seq の要素中 num 個(num: 系列長以下の非負整数)を選んだ組合せをすべて表示し場合の数も表示する 関数 (comb seq num) を作る問題を教えてください
623 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 18:51:10 ] たとえば(comb abcd 3)の評価は (A B C) (A B D) (A C D) (B C D) 4 のようになります。(comb abcd 0) は 1 と評価されます
624 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 19:11:17 ] >>622 宿題かい? 宿題だと仮定して、ここで答を聴いてしまうと、君は次の宿題もここか他で答を探す羽目になるんじゃないのかい? だとすれば、君がなすべき事はその宿題のどこがわからないかを表明して助けを乞う事であって解を求める事じゃないのではないの? 宿題じゃないならごめんな。
625 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 19:18:18 ] >>624 宿題です。 (A B C D) ってあったらまずAをチョイスしてnum個のリストになるまでリストに要素を追加していくやり方を考えているんですがうまくかけないんです
626 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 22:03:55 ] >>622 あのさー >>578 で全く同じ宿題がでてるんだけど。締切は 9/31 までだったんじゃねーの? >>578 がウソつき野郎だったのかループを狙ってるのか……。たぶん君も前の彼も大学生なんだよな? 宿題の丸投げくらいはちゃんとできるようになろうよ?エスパー募集ばっかしてたら社会でやっていけないよ。 どんな関数使っていいのかとか、環境とか、締切とか、宿題丸投げするなら最低でもそのへんは書こうよ。 前の彼も後で「format知りません」「let も使わないでください」とかいいだすし。
627 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 22:10:20 ] いや、問題はちょっとややこしくなってるぞ。 たぶん >>578 の続編だろう
628 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 23:24:28 ] だからー、宿題に丸まる答えてあげるのやめなよ。 せいぜいヒントを出すとか、「こういう風に考えてやってみたけどうまく行きません、 どこがまちがってるのでしょうか?」と言う質問にだけ答えるとか。 丸まる答えたらますます自分で考える気を無くすよ、多分。
629 名前:622 mailto:sage [2007/10/07(日) 23:30:44 ] 再帰的に(A B C D)のリストからまず先頭Aで numが0になるまで Aをとって(A)というリストをつくる。numを1つ減らす Bをとって(A B)というリストをつくる。 ・・・ みたいに考えたんですが(A) (A B) というリストをうまく保持しておけません。
630 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 23:35:30 ] >>628 こんな所に質問しにくる馬鹿が今後どんな人生を歩もうと、そんなことどうでもいい
631 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 23:47:49 ] 出題者のレベルもアレな感じがするのは気のせいか
632 名前:デフォルトの名無しさん mailto:sage [2007/10/07(日) 23:52:47 ] >>631 そうですね
633 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 00:02:15 ] >>628 最初にそう聞いてくる奴ならそう答えるさ。だがちゃんと丸投げですと宣言したならズバリ答えを解答しちゃうよ。 もし本当にやる気があるなら、ズバリの答えでもちゃんと見て考えるさ。見とり稽古みたいにね。 全体図と筋道を見せてからゆっくり詳細を解析したいって人もいるかもしれない。 やる気がない人をむりやりやらせるなんてのは非生産的。
634 名前:622 mailto:sage [2007/10/08(月) 00:03:38 ] >>633 やる気はあります!
635 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 00:43:23 ] そうか。んじゃ使ってる Common Lisp 処理系で次を見てみよう。 (loop for l on lst ;; '(A B C D) => '(B C D) => '(C D) => '(D) => NIL for e = (car l) ;; A => B for l2 = (cdr l) ;; '(B C D) => '(C D) do (print l) (print e) (print l2))
636 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 06:21:28 ] やる気があるのなら教官に聞けよ
637 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 06:41:15 ] 宿題がでると妙に活気づくなあ。よいよい
638 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 08:29:35 ] >>622 Scheme 臭いコードだなあ。 internal defun なんて意味不明なこともやってるし。 どこの大学のなんて香具師が担当してる講義なのか晒しちゃえよ。
639 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 09:02:43 ] scheme臭がすると異常反応するスレw
640 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 09:15:13 ] 過剰反応っていう言葉はあるけど、異常反応ってのはあんまり聞かないな。
641 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 12:40:54 ] Scheme臭に抵抗無かったらSchemeを使ってるよ
642 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 13:13:23 ] 俺はScheme臭に抵抗ない、むしろSchemeっぽい書き方の方が好きだけど、 Common Lispの便利な機能でSchemeにないものが多いからCommon Lisp使ってる
643 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 13:16:26 ] たとえばなに
644 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 13:25:48 ] スペシャル変数とか
645 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 20:24:02 ] エレガントかつ強力なloop構文とか
646 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 21:04:26 ] format
647 名前:デフォルトの名無しさん mailto:sage [2007/10/09(火) 23:45:18 ] reader macro
648 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 01:03:54 ] compile, eval-when, disassemble, trace, optimize ... とか? でも Scheme も Gauche なら便利だから使うな。頭は別の言語として切り替わるのであんまり困る事はない。 むしろ片方を撰択して、もう片方を見下す、みたいな行為をやめて両方使えばいいじゃん。
649 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 01:17:20 ] 見下されたと錯覚した人が攻撃に転ずる気がする。多くの戦争と同じ原理だ。
650 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 01:30:52 ] CL の人としては funcall はクソとか、*常に* 末尾再帰を最適化しないとクソ、みたいな一面的な見方に反論したくなる気持ちはわからんでもない。 が、実際にいちいち反論する人は 2ch 以外ではあんまりみかけないなぁ。
651 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 01:32:20 ] そういや 622 はどうなったんだ?締切とか大丈夫なのか?
652 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 07:38:56 ] ΣってどうやってCommon Lispで定義出来ますか? リスト(2 4 6 8 )を全部足す奴。 なるべく再帰で。
653 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 07:58:10 ] >>652 (loop for x in '(2 4 6 8) sum x)
654 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 08:38:38 ] そういうときは apply 使うのが好きかな (apply #'+ '(2 4 6 8))
655 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 09:53:05 ] >>649 そんでもって、「見下してないよ、それはあなたの被害妄想だよ」と言い張れる言い方で見下すのが ネットの基本戦術なんだよな。
656 名前:デフォルトの名無しさん [2007/10/10(水) 12:09:12 ] ACLのアカデミック版って($99の奴)って 日本の学生って適応されないの? ざっとみたところ、米国のみって記述が見つからなかったけれど。
657 名前:656 mailto:sage [2007/10/10(水) 18:03:34 ] お金払ったのに、いつまでたってもソフトウェアダウンロードの案内がこない (ストアのアカウント作成の案内も)と思っていたら、 help.yahoo.co.jp/guide/jp/mail/info/071010/ マジカよ。アリエネェだろ。 フリーメールで登録するんじゃなかった。 日本のFranzに問い合わせても大丈夫かな。
658 名前:デフォルトの名無しさん [2007/10/10(水) 19:52:34 ] (defun sigma (x &optional (y 0)) (if (null x) y (sigma (cdr x) (+ (car x) y)))) 再起にしたらこんな幹事?
659 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 21:01:45 ] 末尾再帰って指示ないなら出題者はこっちを意図してるかも (defun Σ (list) (if list (+ (car list) (Σ (cdr list))) 0))
660 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 21:04:16 ] >>654 でまずい理由でもあるの? >>658-659 はΣでもなんでもなく、+の再定義でしかない
661 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 21:33:34 ] >>660 拡張しにくい。範囲の制限や関数 f を適用した結果を集めたいときに、関数ならパラメータを追加することで対応できる。 というかそっちの方向に進むと思われるので、(apply #'+ ...) じゃなくて普通は自前で実装するところからはじめるんだろう。
662 名前:デフォルトの名無しさん [2007/10/10(水) 22:19:46 ] sbclのコンパイルについて教えてください・・・。 動作環境はWin XP, sbcl Ver.1.0.9です。 ttp://fridge-shell.blogspot.com/2007/02/sbcl.html このHPと同じように操作すると、outファイルができるので、 これをout.exeにリネームしてコマンドプロンプトで実行すると 応答がかえってこずに固まってしまいます。 このスレで、sbclでコンパイルした実行ファイルはサイズが大きい(10MB?) というレスをみましたが、outファイルは2kBしかありません。 ネイティブコンパイルする手順がWin版とLinux版では異なるのでしょうか・・・
663 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 22:34:35 ] >>662 SBCL Windows 版はまだ誰もが使えるような状況ではありません。 試験的なリリースですので問題を自力で解決できる人向けのものです。 Windows 版自体がまだ実験的なものですので、EXE の生成機能は非サポートです。 「ネイティブコンパイルする」 == 「.exe を生成する」というのは Lisp の世界においては成立しません。 .exe を生成するのは「スタンドアロンなバイナリ/実行形式を生成する」と呼ばれる機能です。 ネイティブコードの生成自体はもっと簡単です。プロンプトで (compile nil (lambda (x y) (+ x y))) と打つだけで コンパイラはネイティブコードを生成できます。
664 名前:662 mailto:sage [2007/10/10(水) 22:46:09 ] >>663 ご回答ありがとうございます。 Win版はexeの生成は非サポートだったのですね・・・。 こういう時だけlinuxが羨ましくなります。 orz いろいろと勉強になりました。 ありがとうございました。
665 名前:デフォルトの名無しさん mailto:sage [2007/10/10(水) 23:00:41 ] ついでに言っておくと、Lisp の世界ではスタンドアロンバイナリ生成を使う機会はほとんどない。 なぜなら、Lisp の世界ではアプケーションはユーザーが触って変更できる「システム」である事が多いから。 Emacs や Maxima や Aximo などはユーザーがプログラムを投入するたびに .exe を生成したりしない。 ベースの機能にユーザーによる拡張をインクリメンタルに追加しながら増えていくんだ。 この辺が感覚的に合わないなら Scheme のほうがいいかもしれない。 # LispWorks や AllegroCL、CormanCL のような商用の話や、GCL, ECL, といった GCC をバックエンドに使う連中とかはまた別
666 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 01:40:48 ] >>665 「Schemeのほうがいい」理由がよくわからん。 単にスタンドアロンバイナリをスマート作れない処理系が多いというだけでは?
667 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 02:19:03 ] サイズはでかいけどwinのsbclでsave-lisp-and-dieは 結構まともに動いているように思う。 一般的でないのはlispで配布するという機会が見ている分にすくないだけで exe作るのって他所の言語と比べて難しいとは全く思わないのだけれど。 lispで作られて配布されている有名なソフトってあります?
668 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 08:05:42 ] >>662 sb-executable って、もうほとんどサポートされてないよ。 save-lisp-and-die の :executable に置換済み。 >>667 が言ってるように、save-lisp-and-die は Win32 でもちゃんと動く。 C:\>sbcl This is SBCL 1.0.9, an implementation of ANSI Common Lisp. <snip> This is experimental prerelease support for the Windows platform: use at your own risk. "Your Kitten of Death awaits!" * (defun main () (print "Hello, SBCL!") (quit)) MAIN * (save-lisp-and-die "hello.exe" :toplevel #'main :executable t) [undoing binding stack and other enclosing state... done] [saving current Lisp image into C:\\hello.exe: writing 1960 bytes from the read-only space at 0x02000000 writing 1640 bytes from the static space at 0x02100000 writing 22888448 bytes from the dynamic space at 0x09000000 done] C:\>hello This is experimental prerelease support for the Windows platform: use at your own risk. "Your Kitten of Death awaits!" "Hello, SBCL!"
669 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 08:12:26 ] 便乗質問させてもらうけど 1. ネイティブコンパイラがある(コンパイルした結果が速い) 2. 実行可能形式(EXEやDLL)が作れる 3. マルチスレッドアプリが書ける。 4. (基本的な)CLOS(オブジェクト指向)機能のサポート 5. ソケットインターフェースのサポート 6. 作成したアブリを配布する際のライセンス料が安い、もしくは無料 これらの条件を全て満たすフリー もしくは比較的安価な商用Lisp処理系と言ったら やっぱりCorman Lispが一番かな? ブラットフォームはWindowsが前提です。
670 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 09:41:35 ] Windows ってだけでフリーの実装はほぼ全滅だからね Lisp で遊ぶなら UNIX
671 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 12:25:35 ] >>669 比較的安価ってだけでLispWorksがそれに該当するんじゃない? (対象がACLだから安く感じるだけかもしれんが)
672 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 13:23:22 ] 商用だとTorrentはまずいかな。
673 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 13:46:22 ] Windowsにポーティング中のSBCLはGCのバグまだ残ってるみたいね。 やる気ないにしても、POSIX以外だとそんなに移植が困難な実装なのかな? それともWindowsで動かせちゃダメみたいな変な勢力が邪魔してるとか。
674 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 18:28:42 ] >>666 「スマート」の意味がわからん。スタンドアロンバイナリにスマートとそうじゃないものがあるの? CLISP, SBCL, GCL, ECL, ACL, LispWorks, CormanLisp... スタンドアロンバイナリを生成できないのって ABCL くらいじゃないか。 >>668 SBCL for Win32 系で「ちゃんと動く」とかは言わないほうがいいと思うんだよなー。 use at your own risk なんで初心者に進めると混乱の元じゃないか。 >>669 ECL も忘れないでやってください。 >>673 単に開発者がいないだけ。
675 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 01:45:55 ] 俺は OpenMCL をいつか弄りたいと思ってる。スレッド廻りきちんとしてそうだし、フットプリント小さいし。
676 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 08:42:10 ] OS7でMCL使ってたけどあの環境良かったなあ。
677 名前:デフォルトの名無しさん [2007/10/12(金) 20:55:25 ] 2ch発のLisp処理系作ろうぜ
678 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 21:17:50 ] >>677 よし、yacc と PHPで作ろう。
679 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 21:34:48 ] どうせならPHPのみで ↓まかせた
680 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 21:56:21 ] >>676 どんな感じだったの?紹介してくれよ。
681 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 21:59:26 ] LISP作るのにyaccはどう考えても出番が無いだろ
682 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 22:07:40 ] >>681 リーダーマクロとかあるからあった方がよくね?>>yacc 勿論Common Lispをフル実装するんだよ。
683 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 22:11:18 ] yaccで作ったんじゃ動的なリーダマクロにならないじゃん
684 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 22:19:27 ] 本スレでやってくれ。
685 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 23:31:06 ] どうせ作るならCommonLISP上位互換にしてください。 このスレではCommonLISPの仕様を満たしてないと LISPとは認めませんので。
686 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 23:33:15 ] 荒しうぜぇ……
687 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 23:55:52 ] 自分の気に入らないもの=荒し やれやれ・・
688 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 00:29:21 ] 確かに、やれやれとしか言い様のない妄想等式だね。
689 名前:デフォルトの名無しさん [2007/10/13(土) 00:42:28 ] 言語の実装が入門スレにふさわしいわけかね。まぁ本スレへの誘導も無視してるし、荒しだと思っとくよ。
690 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 01:36:29 ] >>677 がここで話振ったんだから奴に任せようぜ
691 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 03:21:45 ] 処理系作るってのも立派な入門内容だと思うけどなあ。特にLispの場合は。 動作原理知るために1度は通るでしょ。 >>677 の枕詞にCommonLispでもあれば納得したわけ? つーかこの程度で荒らし認定かよ。 どうせ特定の一人だろうけど、きもすぎるわ。
692 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 07:39:45 ] まぁやるのはいいと思うよ。俺は興味ないけどさ。 具体的な作業をはじめるか、本スレに移動すりゃ文句いわれないんじゃない?
693 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 12:40:25 ] 荒らしというほど荒らされてるようにも見えないしなあ。 ぐだぐだ言ってんのは約一名だろうね。
694 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 13:56:05 ] >685が煽りっぽい言葉を書いてるのは確かだろ。 「Common Lisp上位互換」なんて洒落にもならん事を。 >686が「荒らし」と言ってるのはその事だけだろ。
695 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 14:18:24 ] >>686 が誰を指して言ったかなんて本人にしかわかんと思うぞ 本人乙
696 名前:694 mailto:sage [2007/10/13(土) 17:26:36 ] >695 俺は >686本人じゃないけど勝手に自分達が非難されてると解釈して 感情的に反応するより遥かにマシだろ?
697 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 17:41:36 ] >>695 > わかんと思う どういう意味ですか?
698 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 19:37:16 ] 和姦と思う
699 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 20:50:25 ] どうも、誰か一人が自分を攻撃しているというふうに捉えているようだね・・・ どうせならなにか生産的な話題を振って荒しじゃない事を行動で示せばいいのに。 結局 >>686 が正しかったのかね。
700 名前:デフォルトの名無しさん [2007/10/14(日) 22:06:45 ] 2ch発のCommonLisp処理系作ろうぜ
701 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 22:59:06 ] 成功したプロジェクトが実は 2ch 発だったってことはよくあるけど、 最初から 2ch 発でって言ってて成功したためしはほとんどないんだよね。
702 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 23:22:31 ] そもそも2ch発なんて名ばかりで実質匿名の個人作業公開オナニーだろ
703 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 23:43:58 ] 「2ch発」という言葉にどんな定義を見出しているのかがわからんレスだな。 急に中二病による発作に見舞われて、いつもよりちょっと大きめの打鍵音を立てて ケツに「公開オナニー」って書き加えた辺りの心の動きだけは、容易に理解できるけど。
704 名前:デフォルトの名無しさん [2007/10/15(月) 05:26:32 ] 出たよ定義厨
705 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 11:45:40 ] とりあえず厨をつけてみたのはわかった。 もうちょっとうまく展開できてたら、苦し紛れがバレなくて済んだかも。
706 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 19:48:07 ] オナニー禁止なんてお前らプロテスタントかっつーのwwww
707 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 20:25:09 ] 誰かが俺を攻撃してる!→ファッビョーン→荒れまくり というのは、以前に本スレでも似たような流れがあったよねぇ……。 ちょっと前に宿題聞いてた人たちは、結局自力で解けたの?
708 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 23:06:48 ] (a (b) c (d (e)) f) こういうリストがあったとしてeを削除したいんですがどうやったら取り出すことができますか? 関数定義したいんですが。 first secondなどで取り出してるんですがうまくいきません。 アドバイスありましたらよろしくお願いします
709 名前:デフォルトの名無しさん [2007/10/15(月) 23:07:50 ] >>707 まだ解けないです!
710 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 23:29:01 ] >>708 ほしい結果はこれ? (a (b) c (d ()) f)
711 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 23:48:27 ] >>708 listっていってもconsセルの集まりなんだから絵を描いて整理してみれば。
712 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 09:33:47 ] まずは簡略化した問題の解を得て、それを元に改良していけばいい。 708ならまずはネストしていないリスト(a b c d e f)からeを除く関数を実装する あたりから始める。 (目的は近似解を得ることなので、deleteとか使わず自分でやる)
713 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 13:20:35 ] >>710 >>711 >>712 レスd 再帰で何とかできました。
714 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 14:27:07 ] どうやって出来たか教えてー
715 名前:デフォルトの名無しさん [2007/10/16(火) 23:13:07 ] すいません。質問させてください。 中置演算子で書いた簡単な計算式を解析して実行するプログラムを書こうと思うのですが、 '( 1 + 1 ) ってリストを作って、演算子を取り出しても計算できません。 リストから関数は取り出せないのでしょうか。 (begin (define calculate (lambda (l) ( ((car (cdr l)) (car l) (car (cdr (cdr l))))))) (calculate '(1 + 1)))
716 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 23:19:42 ] マクロにするか演算子の値で分岐しないといけないような。 シンボルを識別子とみなして値を取り出すって Scheme でできたっけ?
717 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 23:25:04 ] evalが使えるはず
718 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 23:29:54 ] eval使うまでもなく (define op-alist `((+ ,+)(- ,-) ...)) みたいなの作っとけば ((cadr (assq (cadr infix) op-alist)) (car infix) (caddr infix)) で呼べるでしょ
719 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 23:35:00 ] CLの人: (funcall イイ。(( は構文と見た目が区別できんからイクナイ。 CL-USER> (defun calculate (lst) (funcall (second lst) (first lst) (third lst))) CALCULATE CL-USER> (calculate '(1 + 1)) 2 Schemeの人: (funcall ウザイ。 (( ってかいて括弧の数を数えたい。
720 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 23:36:45 ] やはりschemerの方が知能が上みたいですね。 CommonLispは小手先だけ器用になりそなイメージです。
721 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 23:48:11 ] i < おまえより知能の高い酸のブロッブを知っているぞ
722 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 23:51:27 ] >>719 毎回比較したがるクセは直したほうがいいね
723 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 00:10:10 ] 関数定義が (define hogehgoe (lambda (x) ...) ってのがムカツク。引数の数がちょっと見ではわかりづらい。 しかし、(define (hogehoge x) ...)ってのはなんとなく呼び出した結果を定義してるみたいで嫌だ。 (defun hogehoge (x) ... は良い。hogehoge っていう(関数)シンボルを定義してるんだなーって感じがしてわかりやすい。
724 名前:715 mailto:sage [2007/10/17(水) 00:27:32 ] 回答していただいてありがとうございます。 リストは基本的なデータ型しか入れられないんですね。 だから関数を入れると型が不明のシンボルとして扱われてしまうと。 勉強になりました。ありがとうございます。
725 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 00:49:47 ] >>724 なんかちょっと誤解してるみたいだけど、まあそれはおいといて、 schemeでわかんなくなったら本スレの方においで。 このスレの住人はschemeコンプレックス発動で それどころじゃないみたいだし。
726 名前:デフォルトの名無しさん [2007/10/17(水) 00:50:29 ] common lispで gauche の util.math みたいなのありませんか? 無くても自分で作るんですが。 arnesiのmatcherが惜しい。
727 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 00:57:43 ] 質問の仕方がなってないな gaucheのutil.mathとやらが何を提供してるのかまず書け
728 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 01:52:07 ] どっちが上とか、コンプレックスなんて持ってるのは初学者だけだよ。 ある程度やってる人は、Common Lisp も Scheme わかってる。 どの言語が上とか下とかじゃなくて、用途によって使い分けてるだけ。
729 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 01:59:05 ] >>723 コード中で(func args)っていう呼び出しを思いついたら、 そのまま(func args)をコピってきて(define (func args) 〜)とできるから むしろ便利だと思うけどな。そもそも構文唐なわけだし。 defunは括弧の位置を修正しなきゃいけない。
730 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 02:19:14 ] >>727 申し訳ない。 ML likeなパターンマッチライブラリで・・・と clikiに似たのがあったので終了します。 ググっても無くググ子っても見付からないのでつい聞いてしまった。(code search)
731 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 10:27:00 ] >>716 715では無いが>>715 をマクロでやろうとするとどうなるんだ?
732 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 13:08:09 ] (defun keisan1 (l) (list (second l) (first l) (third l))) (defmacro keisan (l) (keisan1 (second l))) (keisan '(1 + 1))
733 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 21:27:18 ] (defmacro m (lst) `(,(second lst) ,(first lst) ,(third lst))) (m (1 + 2)) => 3
734 名前:デフォルトの名無しさん [2007/10/18(木) 00:29:10 ] WINのGCLで一文字入力を待つのはどうやるのでしょうか CLISPだとread-charでなんとなくできてしまうのですが GCLだと待ってくれません。
735 名前:デフォルトの名無しさん [2007/10/18(木) 06:38:01 ] (dotimes (x 10) (progn (princ "hello") (sleep 1) )) などとやって1秒ごとに表示させたい場合GCLではどうやれば いいのでしょう。CLISPだとできるのですが GCLだと10秒後にまとめて表示されてしまうのでうまくいきません。
736 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 07:08:21 ] バッファをフラッシュしなさい。 force-output。
737 名前:デフォルトの名無しさん [2007/10/18(木) 10:45:26 ] ありがとうございます。 1秒ごとにちゃんと止まりました。 (dotimes (x 10) (progn (princ "hello") (read-char) )) みたいなことはできないのでしょうか。一個表示するたびに ユーザがなにかキーを押すまで待たせたいのですが、 LISP的には普通どうやるのでしょうか。 prognはLISP的にはよろしくないのでandをつかえ、と 本に書いてありましたが、 ということはLISPは逐次処理はタブーなのでしょうか・・・?
738 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 14:11:17 ] >>737 > prognはLISP的にはよろしくない なんでよくないの?
739 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 15:43:18 ] >>737 Common Lisp で文字単位の入力を行う互換性のある方法は無いので、 今のところは read-line を使って Enter 入力待ちで妥協しておくのがいいよ。 ところで今更なぜ GCL?
740 名前:デフォルトの名無しさん [2007/10/18(木) 15:56:13 ] andにするべきだそうです。
741 名前:デフォルトの名無しさん [2007/10/18(木) 15:58:14 ] WINだとマルチバイトのファイル名と(SYSTEM)がつかえるのが便利ですね
742 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 23:23:50 ] GCLって今更な処理系なんですか?
743 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 00:43:51 ] うんそうだね
744 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 10:46:00 ] 今年の7月まではcommitが続けられてたし、今更って言う程終了したプロジェクトでもないぞ。 確かにこのまま停滞が続く可能性は否定できないが。
745 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 12:05:13 ] LISP作ってる人ってなんだか Windowsではあきらかにやる気ないですよね。
746 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 13:01:21 ] Lisp に限った事じゃ無いと思うけど。
747 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 13:57:03 ] 切ないですね。
748 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 14:37:22 ] Windowsみたいな処理系でやる気を出せというのが難しい。 まずはUNIX処理系で形にしておいて、それをWin用にポーティングするのが常に賢い。 Microsoftは答えじゃない。Microsoftは質問だ。そして、答えはNOだ。 -- Erik Naggum
749 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 17:31:59 ] OSを処理系と呼ぶ人も珍しいね。
750 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 17:46:03 ] >>745 逆。Windows の人たちが Lisp に興味ないんだよ。 ほとんどの Lisp 処理系の開発者は仕事でやってるわけじゃないので 他のプラットフォームへの移植までは難しい。 Windows プログラマから貢献がないとどうにもならないわけ。 自分の例で恐縮だが、俺程度でも SBCL の開発に手を出したら FreeBSD での問題はずいぶん減ったし、thread や amd64 も 動くようになった。 どこの処理系も人材難だから、Windows プログラマが一人参加 するだけでも状況はずいぶん変わるはずだよ。使いたい処理系が Windows でうまく動かないって思ってる人は、その処理系のソースを 眺めてみたら?
751 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 19:50:18 ] Unix系でちゃんと動いてる処理系が多いのは、それが簡単だから。 Win32でちゃんと動かすってのは結構大変なんだよ。設計がぐちゃぐちゃだから。 いっそのこと .NET CLR 用に作るとか考えるほうが建設的な気がするな。
752 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 20:09:46 ] >>750 =旧よろずやの中の人
753 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 20:14:50 ] >>750 FreeBSD ユーザーな Lisper の一人としてあんたには感謝しているぜ! SBCL のスレッドに釣られて Linux に走る Lisp 仲間は多かったからな。
754 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 20:18:36 ] >>752 >>750 は SBCL だろ? よろずやの人は CLISP じゃなかったっけ。
755 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 20:55:29 ] >>754 よろずやの人はcmucl -> sbclメイン他いろいろ です....って何かストーカーみたいだなw
756 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 22:15:31 ] >>744 つうか数人のデベロッパしかないLisp系プロジェクトでは数ヶ月〜数年commitがないなんて良くあること。 基本的にLispのみで喰えてる人はいないんで、みんな余暇にしか作業しないからな。 先にRubyとかを見ていると止っているように見えるのかもね。 >>755 754はデベロッパーとしての話なんじゃないか。
757 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 00:11:05 ] まあGCLはいろいろあったからね
758 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 01:00:01 ] って何?
759 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 01:22:30 ] 確かメインの開発者が事故で亡くなられた。
760 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 01:28:23 ] GCLってGNU Common Lisp?
761 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 01:45:23 ] (質問は)そっちかよ…
762 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 02:07:02 ] >>759 >亡くなられた 偉いなw 俺だったら"逝っちゃった"とか平気で書きそうな気がorz
763 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 15:33:05 ] KCL な神たちはかかわってないの? GCL になってからは
764 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 16:08:11 ] かかわってない
765 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 16:11:49 ] LISPってリアルタイムの制御とかには使えるんですか。
766 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 16:47:41 ] ゲームとかロボットで使ってる例はあるけど GC とメモリフットプリントの問題を何とか しなくてはいけない
767 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 18:28:20 ] ロケットか衛星の制御に使ってて宇宙空間にあるのを地上からデバッグした という話がどっかにあった。
768 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 00:36:44 ] なんでもLispなんだよ あっちに見えてる掃除用ロボットだってそうだよ 再帰できたらやりてえんだよ おれ人工知能が書けるほどハッカーになれねえかな 計算機科学の巨人だよ でもそうなったら自分で作った知能とやっちゃうかもしれねえな 機械だって色っぽいよお
769 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 18:30:51 ] リストをシャッフルする以下のような関数を書いてみたんですけど、コンスがあったりしてあんまり上手くないと…… 他に上手い書き方ってないでしょうか? (defun shuffle (lst) (labels ((shffl (lst acc) (if (null lst) acc (let ((*random-state* (make-random-state t)) (len (length lst))) (let ((rand (random len))) (let ((nthrand (nth rand lst))) (shffl (remove nthrand lst :count 1) (cons nthrand acc)))))))) (shffl lst nil)))
770 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 22:49:39 ] >>769 破壊的にやってみた (defun shuffle (list) (let ((st (make-random-state t)) (len (length list))) (dotimes (i len list) (rotatef (car (nthcdr (random len st) list)) (car (nthcdr (random len st) list))))))
771 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 20:25:05 ] ありがとうございます。参考にします。
772 名前:デフォルトの名無しさん [2007/10/25(木) 22:56:58 ] 8パズルを盲目的探索、深さ優先探索、幅優先探索を用いて解け 盲目的探索 初期状態#(8 3 1 0 4 7 6 5 2) 深さ優先探索 初期状態#(0 8 1 4 3 7 6 5 2) 幅優先探索 初期状態#(4 8 1 0 3 7 6 5 2) この3つの目標状態は#(1 2 3 4 5 6 7 8 0)とする 実行フォームは(time...)で囲むこと この問題が全くわかりません。。。どなたかお願いします
773 名前:デフォルトの名無しさん [2007/10/25(木) 23:35:20 ] SBCLに組み込まれている関数のリファレンスとかありませんか? あと、現在定義されている変数の一覧とか確認できると便利なんですが・・・ →トップレベルで (setf xxx 111)で定義したxxxの一覧とか
774 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 23:57:23 ] HyperSpec
775 名前:773 mailto:sage [2007/10/25(木) 23:58:15 ] 自己レスだが、リファレンス見つけた 全部英語だが・・・ orz ttp://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node1.html#SECTION00100000000000000000 >あと、現在定義されている変数の一覧とか確認できると便利なんですが・・・ >→トップレベルで (setf xxx 111)で定義したxxxの一覧とか ↑これはご存知のかた教えてください m(_ _)m
776 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 01:32:57 ] (loop for s being the symbols in *package* if (boundp s) collect s) とか?
777 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 16:55:01 ] 777ゲット!
778 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 16:24:23 ] 与えられた引数が文字列であるか数値であるかを判断する…ってのはどないしたらいいんでしょうか。。
779 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 16:29:18 ] numberpとかstringpじゃだめなの?
780 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 16:33:16 ] >>779 ありがとうございました。
781 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 00:36:22 ] Lispからテーブル形式のデータを出力して、エクセルなどで開いたり、逆に表形式のデータを読み込んで変数に値を貼り付けたりしたいのですが、そういうことは可能なのでしょうか。 Lispは、Allegro Common Lispを使っています。
782 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 00:53:10 ] >>781 CSV
783 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 01:35:10 ] CSVファイルを読み書きするプログラムを書けばいいんですね。 頑張ってみます。ありがとうございます。
784 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 00:19:42 ] 2つ以上続くアルファベットを、文字列に変換するにはどうしたらいいですか。 例えば以下のように。 abc -> "abc" coerseだと一文字の場合しか変換できなくて困ってます。
785 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 00:28:39 ] (string 'abc) "abc" とか (format nil "~A" 'abc) "abc" とか? xyzzyだとできるけど、他のはわからん できないならスレ違いすまんw
786 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 00:32:07 ] >>784 エスパーレスすると、君の知りたいのは symbol-name
787 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 15:32:34 ] >>785 string使えました。ありがとうございます。 >>786 symbol-nameで、やりたかったことができました。 勉強不足ですみません。
788 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 21:48:52 ] Lispって何ができますか?
789 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 22:33:52 ] プログラムの記述ができます
790 名前:デフォルトの名無しさん [2007/11/05(月) 01:29:11 ] 初心者に適した本はない? もしくはサイトでもOK。 興味が沸いてきた。
791 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 01:34:58 ] usir.kobe-c.ac.jp/users/miura/2001/Sc289/index.html
792 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 01:44:58 ] いまANSI Common Lisp読んでる
793 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 01:54:11 ] >>791 GIFアニメが鬱陶しくて集中できないw
794 名前:デフォルトの名無しさん [2007/11/10(土) 17:44:40 ] www.ibm.com/developerworks/jp/opensource/library/os-eclipse-lispcusp/index.html きたぁぁぁぁぁぁっぁぁぁぁぁぁぁぁlっぁああああああぁぁぁぁl!!!!!!!!!!!!!!!!!!!!!!
795 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 07:56:47 ] >>794 I love emacs だけど Cusp は気になるなー。
796 名前:デフォルトの名無しさん [2007/11/11(日) 10:52:05 ] 気になるが、本スレ向けの話題じゃね?w
797 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 17:00:05 ] 本スレは最近調子がわるいのだ
798 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 18:10:04 ] Eclipse自体が重いうえに、ちょっとした拡張にも手間がすげーかかるんで正直あんまり魅力を感じない…。 でもEmacs使わない層には評判いいね。見た目とか、IDEをマウスで操作したい層にはいいのかも。
799 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 16:20:48 ] Emacs + slimeで十分だろ,常識的に考えて...
800 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 19:02:27 ] JavaとかC++とかそのへんの、人間が面倒な手間を強要される言語だと かなり便利なんだよ、IDE。
801 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 00:45:43 ] >>799 emacsの代わりにeclipseなだけで基本slimeだから エディタとのインターフェースにelisp使うかjava使うかってだけな話だよねぇ?
802 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 21:15:11 ] newlisp使ってる香具師いる?
803 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 00:50:35 ] CMUCLやSBCLでPOSIX Pipeなどを使って外部プロセスと データのやり取りをするにはどうすればいいのでしょうか?
804 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 11:09:27 ] doxygen みたいな自動ドキュメント化ツールってありますか? 日本語が使えると嬉しいのですが.
805 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 22:11:15 ] >>804 作ればいいだろ。 それがLispクオリティ
806 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 22:25:20 ] 確かに Lisp でなら3日で作れそうな気がするな 気がするだけだがw
807 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 22:43:22 ] >>806 (loop for x being each symbols in :mypkg when (and (fboundp x) (eql (symbol-package x) (find-package :mypkg))) collect (list x (documentation x 'function))) とりあえずドキュメント文字列取りだしたから、後は任せた
808 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 23:30:25 ] >>804 doxygenを使えばいいのかと 日本語も使えるわけなんだし。
809 名前:804 mailto:sage [2007/11/20(火) 00:25:15 ] 質問した私がアホでした。皆様ありがとうございます。 凝った事をしないで自分専用のツールにするんだったら、 html ぐらいまでは簡単に出来ますね。 >>807 パッケージの中の定義済みシンボルもそうやってすれば取り出せるんですね。
810 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 14:58:45 ] PracticalCommonLisp の第22章だけ訳してみたんだけど、 投下してみるべき? それともチラシの裏に留めるべき?
811 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 17:09:52 ] とりあえず投下してみるよろし。
812 名前:810 mailto:sage [2007/11/20(火) 18:43:39 ] ttp://www.uploda.org/uporg1121370.zip.html 機械翻訳並みでもよければ…
813 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 06:41:28 ] パッケージ a と b を両方共存させる方法はないですか? (in-package a) (in-package b) とすると、a のパッケージで定義されたシンボルが 未定義になってしまいます。
814 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 06:47:23 ] もうひとつ。異なったディレクトリにあるパッケージを、 C の include, libxxx.a の仕組みの様に使う一般的方法はありますか? 今の所以下の様にしていますが、allegro でしか使えません。 (setq system:*load-search-list* '(:first (:newest-do-compile #.(make-pathname :type "fasl") #.(make-pathname :type "cl")) (:newest-do-compile #.(make-pathname :directory "~/src/lib-lisp" :type "fasl") ...
815 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 11:50:47 ] >>812 もっかいうpたのむ
816 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 13:12:38 ] 俺からもうpたのむ 通報するから
817 名前:810 mailto:sage [2007/11/22(木) 18:44:50 ] >>815 物持ちのいいうpろだ探し中 >>816 原著がネットで公開されててもまずいかなやっぱり
818 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 19:04:18 ] 基本的には、原著作者が、翻訳して公開することを明示的に許可してないと ×
819 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 21:16:36 ] >>816 どうでもいいだろ,地下文章なんだから 堂々とWebに公開したらそりゃまずいだろうけど pass付きzipで短期間だけ公開なら問題ないだろ
820 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 21:54:34 ] lions' 本も現在なら ファーストコピーのスキャン画像が流通するのかしらん
821 名前:803 mailto:sage [2007/11/22(木) 21:58:25 ] (´・ω・`)
822 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 22:01:16 ] >>821 socketじゃだめなのか?
823 名前:デフォルトの名無しさん mailto:sageそんなことはない [2007/11/22(木) 22:10:19 ] これが革命の狼煙になるとは思いもしない819であった。
824 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 23:35:19 ] >822 socketに対応していない外部プログラムと繋げられたらばと考えまして もっともsocketの使い方も勉強できたらうれしいです
825 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 00:53:58 ] >>813 つか、常にパッケージ名に::を付ければ参照できる。冗長だけど。 多分本当にしたいのは以下のような事だろ? 省略したけど use-package とすればまるごとimportできる。 cl-user(2): (defpackage :a) #<The a package> cl-user(3): (defpackage :b) #<The b package> cl-user(4): (in-package :a) #<The a package> a(5): (defvar *foo* 813) *foo* a(6): (find-symbol "*foo*") *foo* :internal a(7): :pa :b b(8): (find-symbol "*foo*") nil nil b(9): (import 'a::*foo*) t b(10): (find-symbol "*foo*") *foo* :internal b(11): *foo* 813
826 名前:813 mailto:sage [2007/11/23(金) 09:39:00 ] >>825 import と use-package ですね。これで相当便利になりました。
827 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 00:38:07 ] on lispの翻訳も最初はこんなのりだったなw
828 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 14:02:25 ] texのドキュメントを自動生成するscriptのsampleなどどこかに ないでしょうか?
829 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 22:37:26 ] slimeビデオの通りに ; SLIME 2007-11-19 CL-USER> (make-hash-table) #<HASH-TABLE :TEST EQL :COUNT 0 {ACEED81}> CL-USER> #<HASH-TABLE :TEST EQL :COUNT 0 {ACEED81}> と、すると以下の通りに怒られます。 SB-INT:SIMPLE-READER-ERROR at 2 (line 1, column 2) on #<SB-IMPL::STRING-INPUT-STREAM {AD3B641}>: illegal sharp macro character: #\< [Condition of type SB-INT:SIMPLE-READER-ERROR] 環境は、 debian etch emacs22 sbcl-1.0.11-x86-linux slimeはcvsで取ってきたものです。 .slime.lispには #+sbcl (setq sb-impl::*default-external-format* :utf-8) (asdf:operate 'asdf:load-op 'swank) (setq swank::*coding-system* "utf-8-unix") (setf swank:*use-dedicated-output-stream* nil) (swank:create-server :port 4005 :dont-close t) と、設定しています。 他に何か設定が必要でしょうか。
830 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 22:54:23 ] >>829 slimeのビデオって何か知らないけど、、 「#<HASH-TABLE :TEST EQL :COUNT 0 {ACEED81}>」は手で入力したの? 「#<」ってのは read して元に戻らないものを表示するための記号。 (もとに戻るのは配列とかリストとかね) よって、手で入力したんだとしたら何か勘違いしてるんだと思う。
831 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 23:48:25 ] >>830 > >>829 > slimeのビデオって何か知らないけど、、 slimeのビデオです(サイズ150MBほどあります)。 ttp://common-lisp.net/movies/slime.mov これによると CL-USER> #<HASH-TABLE :TEST EQL :COUNT 0 {ACEED81}> の後に CL-USER> (eq #<HASH-TABLE :TEST EQL :COUNT 0 {ACEED81}> #<HASH-TABLE :TEST EQL :COUNT 0 {ACEED81}>) T こんなことしてるんですが 私の環境ではコケてしまいます。
832 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 14:01:23 ] 829の勘違いというかビデオを理解していないで終了。
833 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 15:10:34 ] 830を1兆回読むべきだろうな
834 名前:810 mailto:sage [2007/11/27(火) 19:27:26 ] 原著者の Peter さんに勢いで 「日本のフォーラムに翻訳を投下したいんだけど許可くれ」 ってメールしてみたんだけど、数日経った今日返信キタ 日本語化の動きは既にあるんで グループを手伝うかどうかは君に任せるよ、とのこと
835 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 21:29:18 ] 829です。 >>830 手で入力しなおして気付きました。 >>832 > 829の勘違いというかビデオを理解していないで終了。 はい、理解してませんね もうちょっと勉強します。 >>833 > 830を1兆回読むべきだろうな さすがに1兆回はw でも3回ほど読み直しました。 Emacs側の設定 face? mouse? 見直してみます。 みなさんコメントありあがとうございました。 お騒がせしました。
836 名前:デフォルトの名無しさん [2007/11/27(火) 22:15:54 ] >>834 その翻訳グループの詳細plz
837 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 01:21:11 ] なんか、ひどい言われようだな。 slimeの#<で始まるのは、手入力やC-yで張ったものではないと思われます。 面倒くさいので、videoは見ていませんが。 私の環境では、 > CL-USER> (make-hash-table) > #<HASH-TABLE :TEST EQL :COUNT 0 {ACEED81}> の、返り値表示の上にカーソル置いてEnter、若しくはマウスで中クリックを することによって、#<で始まる文字列が新規のプロンプト上にコピーされます。 この文字列は、lispのobjectとして評価可能です。 eqで比較も出来ます。 ちなみに、マウスの右クリックでメニューを出すと、色々選べて面白いです。
838 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 01:57:25 ] >>837 どこがひどい言われようなんだ? 質問者の方に問題ありすぎで、829のような質問じゃ仕方ない流れだろう。
839 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 18:59:01 ] 流れをぶった切ってしまって申し訳ないのですが、ちょっと質問させてください。 たとえばPythonにはrange関数があって、0〜10のリストとか簡単に作れますが、 Common Lispにはrangeのような関数はないのでしょうか? そのようなリストが欲しければmake-sequenceでリスト作ってdolistで回して初期化とかそんな感じなんですかね??
840 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 19:25:37 ] loop はどうかね? (loop for i from 0 below 10 collect i)
841 名前:839 mailto:sage [2007/11/28(水) 21:27:44 ] >>840 おおお、ありがとうございます! loopマクロでできないかチラッと見てみたことはあったんですが、 浅く踏み込んだだけだったのでbelowを知りませんでした。 前々から気になっていたイディオム(?)なのでスッキリしました。 どうもありがとうございます。
842 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 22:39:55 ] >>841 www.unixuser.org/~euske/doc/cl/loop.html
843 名前:839 mailto:sage [2007/11/29(木) 01:58:10 ] >>842 どうもありがとうございます。 勉強してきます。 loopマクロって結構面白いですね。
844 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 03:06:35 ] マクロの活用による典型的なミニ言語だよね。 みんなが好き勝手にこんなもの作りだしたら煩雑になってたまらん、って 思いとどまったのがschemerでいいじゃん別に便利なんだから、って 開き直ったのがlisperなんじゃないかと個人的には理解している。 LOOPマクロマンセー
845 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 17:15:09 ] 829です。 >>837 > の、返り値表示の上にカーソル置いてEnter、若しくはマウスで中クリックを > することによって、#<で始まる文字列が新規のプロンプト上にコピーされます。 私の環境ではこれがうまく機能していませんでした。 そこで、slimw-2.0を入れてみたところ出来るようになりました。 > > この文字列は、lispのobjectとして評価可能です。 > eqで比較も出来ます。 そういう事なのですね。 > > ちなみに、マウスの右クリックでメニューを出すと、色々選べて面白いです。 これから試してみます。 コメントありがとうございました。
846 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 14:24:01 ] 日本語文字コードの変換とかPOP3とかMD5とかGUIとか そういう実用的なライブラリはあるんでしょうか・・・ 有象無象に見える多数の処理系に様々な機能が分散して るように見えて何がなんだかわかりません・・・。 今までPerlとTclを使ってやってたことを、Lispでやりたいんですが・・・
847 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 14:47:51 ] >>846 www.cliki.net/index あたりで探してみたら? ASDFが使える処理系なら、 asdf-installをガンガンインストールすればいいので手間もかからんし。 ただし、もともとテキスト処理のために作られた言語でないので、 そこら辺はperlのような充実っぷりを期待しても無駄です。 GUI環境の整備も主たる言語の中では相当遅れていると言って良いです。 McCLIMも最近ようやくあまり落ちなくなったという程度だしw
848 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 19:08:42 ] >>846 847の書いてる通り。 商用のAllegroCLなら、さすがに大分まし、だよ。
849 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 00:10:26 ] オープンソースでフリーな商用CLに期待しましょう
850 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 02:30:21 ] どうやって商売成り立たせんの、それ。
851 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 13:50:46 ] MySQL方式かな
852 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 20:46:35 ] いちおう、最後の砦として、ffi というのもあるけど、 なんでもかんでもリンクし始めたら、lisp を使ってる意味が無くなるかな。
853 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 23:31:43 ] 質問です。CLの正しいプログラムexprは (or (atom expr) (symbolp (car expr)) (eq 'lambda (caar expr)) を必ず満たしますか?
854 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 23:44:30 ] >>853 正しいプログラムってどういう意味? 正しい式の意味?
855 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 23:55:41 ] >>854 (1 2 3)のようなものを式と呼ぶのか分かりませんが、 要するにevalを適用してエラーが出ないもののことです。 あと括弧閉じ忘れてますねすいません
856 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 05:53:16 ] >>853 貴方の意図を汲み取るのが非常に難しい。 とりあえず答えてみると、 exprの部分を例えば(list 2 3 4)で置き換えた場合、 その式を満たしていないことになるけど、 それは自明だからたぶん意図を外しているのだろう。 一々、S式で書かないで、言葉で説明してみたら?
857 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 07:51:02 ] >>856 予想すると、>>853 はlisp処理系をlispで書こうとしているのでは。 知りたいのはフォームの定義と見た。 で、CLHS: Section 3.1.2.1 を見ると、>>853 の定義でだいたい 当っているような気がする。
858 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 09:25:01 ] (,,゚Д゚)∩先生、S式って何ですか? (´ー` ) >>853 ( ゚д゚) …… ( ゚д゚ )
859 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 09:59:34 ] 処理系を書くとか、そういうのって適当にやると結局後で困るんだよね。 最初から定義を見て形式保ってやっていく方がいい。
860 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 19:19:23 ] そうだLispを作ろう ↓ 第一級でないオブジェクトってなんなの? ↓ リストの先頭に現れるらしい ↓ むしろリストの先頭に第一級オブジェクトが現れるのがおかしい ↓ リストは全部スペシャルフォームってことにすれば…… ↓ ……リストの先頭は必ずシンボルになる ↓ それなんてCL ←今このへん
861 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 19:22:00 ] オブジェクトはすべて平等ですよ。 第一級オブジェクトという考え方自体がオブジェクト差別主義に毒されてます。
862 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 19:24:24 ] ウィンストンのlispの3版に lispでlisp処理系を作るとか そういうのが載っていそうな気がする
863 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 21:55:00 ] 残念でした〜。CLではシンボル以外にlambda式もフォーム先頭にこれるんだな。
864 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 21:57:49 ] ああそれはわかっているのか、ごめん。
865 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 21:58:02 ] >>863 >>853 にはちゃんとそう書いてありますね。 lispでlispを作るって一見無駄に見えますけど、 xyzzy lispでxyzzy schemeを作ったら便利そうですね。 とっくの昔に誰かが書いてそうですが。
866 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 01:47:04 ] なぜ便利そうだと思ったのかkwsk