1 名前:デフォルトの名無しさん [2011/07/06(水) 17:15:15.55 ] 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) (url pc11.2ch.net/test/read.so/tech/1181479267/l50 :part 3) (url pc11.2ch.net/test/read.cgi/tech/1201402366/l50 :part 4) (url pc11.2ch.net/test/read.cgi/tech/1215834213/l50 :part 5) (url pc12.2ch.net/test/read.cgi/tech/1234884136/l50 :part 6) (url hibari.2ch.net/test/read.cgi/tech/1270370267/l50 :part 7) □テンプレート置き場□ ttp://wiki.fdiary.net/lisp/ (id:guest pass:cl)
477 名前:デフォルトの名無しさん [2011/12/01(木) 20:11:09.54 ] >>472 は急いで書いたんでぶっきらぼうな感じになってしまいましたが 皆様のお陰で何とかなりそうです。 >>473 触れるべきか考えたまま調べたりしてたら失念しました。 私が触れとくべきでしたね。「なに!変態ですと!!!」 >>474 機会があったら使ってみます。 「こんなのもある」みたいな抽出しを増やさないとダメですよね。
478 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 23:49:07.05 ] 次に、sublisもhyperspecで調べてみ。
479 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 23:49:52.10 ] s式のテキストを読み込み評価して他のテキストデータを書き出したいのですが、 書き出す部分の処理がうまくいきません 読み込むファイルと書き出すファイルのパスは、 外部から与えるようにしたいです (defun from-lisp-to (input-file output-file) (with-open-file (stream output-file :direction :output :if-does-not-exist :create :if-exists :supersede) (eval (read-from-string (format nil "(progn ~A)" (parse-lisp-file input-file)))))) このような形で組み立てて 最終的にはinput-file内の(format stream "hoge")をoutput-file のstreamに書き出すよう処理させたいのですが 文字列内のstreamとして(with-open-file)のstreamを使わせる方法がわかりません どこを修正すればよいでしょうか
480 名前:デフォルトの名無しさん mailto:sage [2011/12/02(金) 00:37:24.41 ] >>476 A1. function-lambda-expressionのこと? A2. シンボルの上で M-. 。SBCLならdescribeでソースの位置とか表示される A3. SLDB(SLIMEのデバッガ)については前に書いた物があるんで、下をどうぞ cl.cddddr.org/index.cgi?SLIME%3ASLDB A4. ソースは読むに越したことはないと思う。勉強になる
481 名前:デフォルトの名無しさん mailto:sage [2011/12/02(金) 00:59:07.46 ] >>479 HyperSpec曰く、 www.lispworks.com/documentation/HyperSpec/Body/f_eval.htm#eval > Evaluates form in the current dynamic environment and the null lexical environment. なので、evalでローカル変数を参照することはできません。本当にありがとうございました。 ちなみに、それは単に (with-open-file (*standard-output* "out.txt" ...) (load "code.lisp")) みたいなのじゃ駄目なんでしょうか?
482 名前:デフォルトの名無しさん mailto:sage [2011/12/02(金) 01:14:08.56 ] >>477 (defun chikan (x) (labels ((f (x) (if (atom x) (henkan x) (list (mapcan #'f x))))) (car (f x)))) mapcan 使うとこうなる。 labels 使うと (car (chikan hoge)) と呼ばなくてもOK. >>479 (eval `(let ((stream ,stream)) ,(with-open-file (s input-file) (read s)))) parse-lisp-file が分からないけれど、みたいな感じで……。
483 名前:デフォルトの名無しさん mailto:sage [2011/12/02(金) 01:16:06.08 ] >>468 そういうことでしたら、無理にいじくらないようにしなくてはなりませんね 勉強になりました
484 名前:デフォルトの名無しさん mailto:sage [2011/12/02(金) 01:36:00.09 ] >>481 分かりました 道理でよくありそうな処理なのに (eval (read-from-string という例がほとんど無いのですか evalを使わずにできないものかと考えていましたが、 単に*standard-output*を利用するということを失念していました >>482 eval外部のstreamをletを使ってeval内部に持ち込むのですか ただ、そうなると>>481 の説明に反してしまうような… >>481 が簡単というか簡潔なのでそちらを使うことにします
485 名前:デフォルトの名無しさん mailto:sage [2011/12/02(金) 02:00:11.93 ] >>484 えーと、>>482 はローカル変数を参照してません。 リストを作る際に値(ストリームオブジェクト)を展開してるので、 >>481 とは矛盾しないと思います。
486 名前:466 [2011/12/02(金) 12:25:25.85 ] >>482 ぴったりな関数があったのですね。
487 名前:デフォルトの名無しさん mailto:sage [2011/12/02(金) 23:46:00.60 ] >>485 勘違いしていました リスト生成後にevalで評価していますね 失礼しました
488 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 13:10:38.61 ] > Evaluates form in the current dynamic environment and the null lexical environment. Evalのこの制約は静的展開コンパイル最適化のため?
489 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 22:30:55.64 ] evalはダイナミック変数ならその値を得られたような気がする それを考えると、コンパイルを必要な限りにおいてコンパクトに行うようにする、というのはしっくりくるね
490 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 23:46:10.74 ] 実用common lispのp.427の (with-open-file (out "foo.html" :direction output) (with-html-output (out :pretty t) (emit-html *some-foo-expression*))) のoutputは:outputの誤表記でしょうか?
491 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 00:19:44.66 ] >>490 typoだねー。原書の時点で間違えてるみたい。 www.gigamonkeys.com/book/practical-an-html-generation-library-the-interpreter.html www.lispworks.com/documentation/HyperSpec/Body/f_open.htm#open あと、そっちは実践Common Lisp(通称PCL)。実用Common Lisp(通称PAIP)とは違うので注意。
492 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 00:21:13.21 ] >>491 たしかに実践の間違いでした。ご指摘ありがとうございます。
493 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 01:19:20.11 ] >>492 正誤表提案よろしく pcl.lispuser.net/wiliki.cgi?%E6%AD%A3%E8%AA%A4%E8%A1%A8.%E6%A1%88
494 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 03:07:09.18 ] >>493 追加しておきました
495 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 12:46:19.07 ] >>491 の1つめのサイトトップページに that book is dead sexy ?Xach on #lisp と書いてあるのですが、どういう意味なのでしょう xachという英単語は存在しないようですし
496 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 12:55:21.24 ] >>495 Quicklispとか書いたり色々やってるLisperのZach Beane(ハンドルがXach)が、 IRCの#lispでそう言ってたってこと。
497 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 13:32:00.48 ] >>496 なにそれ。 知らんがなって感じだな。 ハンドル名じゃなくて実名で書けよ。 pgってどれだけ浸透しているのか知らないけど、pgだけだと迷惑だな。
498 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 13:59:39.95 ] 何を過剰に反応してるか知らんけど、RubyでのMatzとか、日本のSchemeでのShiroさんとか、 別に通りの良いあだ名で人を識別するのなんて普通だろ。 そもそも、事情が分かる人向けに「あの有名人もこう言ってますよ」っていう宣伝なんだから。
499 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 14:37:35.60 ] Matzだったら認知度高いと思うけど、非日本諸国でShiroだけでどれだけの人が認知できるのかね。 竹内関数の竹内さんの通り名知らないけど、その通り名で英語圏でどれだけ認知されているの? ちゃんとその本人のリンクが貼ってあるならわかりやすいだがな。
500 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 14:42:45.70 ] チョン鮮人乙
501 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 14:52:50.60 ] >>500 Es lebe die koreanische
502 名前:490 mailto:sage [2011/12/04(日) 15:15:45.19 ] sbcl最新版をwindowsで使っています おかげさまで実践common lispを読み終えたのですが、 実際にコードを動かそうと思って www.gigamonkeys.com/book/ のDownload source codeを取得して Chapter31の動作を確かめようとしたのですが、chapter31/ディレクトリにあるcss.lispをloadしようとすると The variable COM.GIGAMONKEYS.HTML::CSS-STYLE is unbound. というエラーが出てしまいます 当初.macro-utilitiesが見つからないと言われて (ql:quickload "com.gigamonkeys.macro-utilities")によって解決はしたのですが、htmlの方は System "com.gigamonkeys.html" not found となってしまいました どうすればよいのでしょうか
503 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 16:18:44.40 ] Warum bist du so serene?
504 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 16:24:18.32 ] >>502 先にpackages.lispとhtml.lispを手動でロードするか、ASDF経由でロードしてください。 (asdf:initialize-source-registry '(:source-registry (:directory ("practicals-1.0.3/Chapter31")) ; コードのあるディレクトリを指定 :inherit-configuration)) 評価してから(asdf:load-system :html)すればASDF経由でロードできます。
505 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 16:35:46.21 ] >>499 別に全世界でどうこうとか知名度とか、そういうのはまったく関係ないわけよ。 「特定のコミュニティ」の中で十分に共通の認識がある通り名なら、 「中の人同士」でのコミュニケーションに使っても何の問題もないっしょ? 「この道では知る人ぞ知るアイツもこう言ってるぜ、買えよ」って売り文句に、 「俺は知らないんだけど」って言ってる状況なんだけど、不毛だと思わんか? その広告のターゲットじゃないんだから、無理に分かろうとしなくていいんだよ。
506 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 16:48:28.25 ] lispbox、emacsの操作だけ覚えれば使える感じだな。 これはかなり良い入門者向き環境かもしれない。
507 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 16:53:40.02 ] >>505 ヌーディストビーチのWeb上でのコミュニケーションなんだから 腋毛、マン毛等を手入れしたりした方が良いんじゃないの。 部外者はみるなと立看板をわかりやすいところに立てているなら 勝手にすればいいよ。
508 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 17:06:43.44 ] >>507 裸なのは君の方なんじゃないの?
509 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 17:17:29.64 ] 気に入らなくてどうにかしたいなら直接そのコミュニティに言えよ
510 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 17:25:18.90 ] 語学力不足で読み取れなかったのに、 コミュニティの閉鎖性にして誤魔化すのはみっともないと思います。
511 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 17:25:26.19 ] 言えないからここで自分の馬鹿さをひけらかしてる訳で
512 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 17:54:21.06 ] >>506 Emacsを好きになれるかがLisp入門にあたっての鬼門だったりするね 自分はvimから入ったから正直きつかった 好きになったのはEmacs Lispを書くようになってからだ
513 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 18:04:13.66 ] >>488 Common Lispはlexical bindingセマンティクスだからでしょう。 引数にquoteされた式が書かれた場合はlexical bindingではあるんだけど、 引数が一般の式の時には、外のlexical environmentをアクセスしにいくのは、 Common Lispのセマンティクス上まずい。 統一的にlexical environmentはアクセスできないようにしておけば わかりやすい性質を持ったevalになる。
514 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 18:27:48.47 ] >>512 pgはvi派だし、vimの方がサラッと書くときには便利じゃないのかな。 環境を整えて書いたことないけど。 emacs自体は強い支援環境とemacs lispを組む楽しさがあるぐらい。 emacsは四輪でいつも信号に捕まって渋滞。vimはバイクですり抜けして 信号に捕まらずに快適。良い景色があって停車してデジカメに収めよう としても両者の違いは明らか。
515 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 18:33:24.68 ] 環境を整えなくても・・・viはもともとlispモードがついてるし、 screenと組み合わせれば、それとなく使い勝手の良いものになってくれる。
516 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 18:39:07.08 ] 操作がネックになってるvi使いはviper-mode使えば良いのに。
517 名前:512 mailto:sage [2011/12/04(日) 19:01:30.40 ] 言われてみてvimでも平気だったんじゃないかって気がしてきたよ なんかくやしいわ
518 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 19:09:15.80 ] Lisp向けのvim scriptたくさんあるよ。気に入ったものがあればどうぞ。 ↓www.vim.org/scripts/ での検索結果 www.google.com/cse?cx=partner-pub-3005259998294962%3Abvyni59kjr1&q=Lisp
519 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 19:30:37.86 ] slimevよさげですね。もっと早く出てたらEmacsに移らなかったかも
520 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 19:57:47.77 ] slimvは利用してるけど、emacs+slimeのほうが使い勝手はいい感じがした。 うちの.emacsをチューニングしてるからかもしれないが。 vim使っててよくわからんと思ってるのは自動的に括弧を閉じるようにした時に 括弧の外に移動する方法が矢印キー以外のことがよくわからん^^;ところ vimも適当な書物をかって学んだほうがええんかなぁ。オライリーのvi/vim第7版は原著しか無いけd.
521 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 21:37:08.33 ] emacs+slimeでcclを使っていますが、 common lispの閉じ括弧から開き括弧に移動するショートカットキーはあるのでしょうか? 逆に、well-formedなs式で、開き括弧から閉じ括弧に飛ぶということはどうでしょうか
522 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 22:09:10.47 ] >>516 vipper-modeかと思った
523 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 22:25:38.24 ] >>521 lispuser.net/emacs/lisphacking.html#sec-1.1
524 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 22:30:23.11 ] >>523 まさに探していた機能が載っていました ありがとうございます。
525 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 22:50:47.85 ] >>504 できました!丁寧に解説して下さってすみません
526 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 00:00:32.88 ] CLOSの:aroundメソッドがよくわかりません :before と :afterのそれぞれのメソッドは説明を見ても分かるのですが… どういう意味でaround(周囲)なのでしょうか
527 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 00:15:03.95 ] 中でcall-next-methodを呼び出せる。 call-next-methodで呼び出されるmethodを覆うように実行されるからaround。
528 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 01:45:09.14 ] そういうことですか 周囲ではなくて覆うというイメージなら分かる気がします
529 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 16:00:52.40 ] PAIPを読み続けてるけどNorvigのコードって抽象化力が際立ってるね。 惚れ惚れするコードを書くよ。
530 名前:デフォルトの名無しさん [2011/12/07(水) 07:41:56.65 ] doがどうも理解しずらいのですが コツなどありますか?
531 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 11:38:02.20 ] do*がCのforループと一緒。 doはbodyの実行順序が規定されてない。(依存してはいけない)
532 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 12:31:47.74 ] >>531 紛らわしいかきかたすんな DO : ループ変数の束縛がパラレルに行われる DO* : ループ変数の束縛がシーケンシャルに行われる
533 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 13:26:49.32 ] common lispのおおざっぱな内容はつかんだと思うのですが、 それからどういうものを作ればいいのかピンときません できれば10~100行のソースの小さなプログラムで、 common lispの使いどころがよくわかるようなものを複数探しているのですが、 そういうものはありますか?
534 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 15:10:13.11 ] >Webで読めるCommon Lisp情報まとめ >Common Lispの情報を得られるWebサイトや書籍をまとめました。 matome.hatena.ne.jp/mt/761 paipが無いのが残念だけど、 いい感じにまとまっているね
535 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 15:10:25.11 ] こういう複数の言語の実装と比較できるものを読んでみるとか。 shootout.alioth.debian.org/u32/benchmark.php?test=revcomp&lang=sbcl
536 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 16:03:05.72 ] >>534 深町さんも頑張ってまとめたね。おっしゃるように、Norvigのpaipや Norvig&Pitmanのlisp作法に書いたドキュメントがないのが残念。とく に作法のは和訳もされてて読まれやすだけにな。 (*) www010.upp.so-net.ne.jp/okshirai/tutorial-on-good-lisp-programming-style-ja.txt オレイリーの本って幻っぽい。あの作者が早く健康を取り戻すことをお祈りしておくよ。
537 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 16:06:24.88 ] Pitman=Hyperspecの中の人。
538 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 16:25:10.53 ] >>533 PAIPは100行程度でこんなことできるのかと驚かされるものはのってるけど 今の貴方の状況で進められるものかどうか判断できない。 Common Lispだけはいろんな人がいろんな個性のコードを書くから、それが 良いかどうかをみるポイントは>>536 でも参考にしてほしい。柔軟性を上手に 使って、最適化も上手なものって案外センスが問われるから。 https://github.com/languages/Common%20Lisp にはいっぱいコードが転がっ てるけど、お目当てのものが有りそうかどうかはわからん。 速いコードを書く人ならEdi Weitzさんを見るといいかも。でも100行程度じゃないな。^^;
539 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 17:24:49.34 ] >>533 使いどころって高尚な使い方の話? 雑多な処理なら随時実装していけばいいんじゃないの。とりあえず、どう書く.org?は例文として 参考になるんじゃないかな。 ttp://www.amazon.co.jp/dp/4874084141/ 実装するネタがないならこの名著から適当につまみ食いして実装すればいい。 lispのいい所は慣用句を覚えれば形にするの(実装)が速いことだと思うから、形にして動かして 必要性があれば不満な部分を1から再実装しても良いし、不満な部分を我慢して違う興味のあるモノを 作っても良いという気楽さがある。
540 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 17:55:33.62 ] なんか文章捻れちまったなあww lispのいい所は慣用句を覚えれば形にするの(実装)が速いことだと思う。形にして動かして必要性が あれば不満な部分を1から再実装しても良いし、不満な部分を我慢して違う興味のあるモノを作って も良いという気楽さがある。
541 名前:533 mailto:sage [2011/12/07(水) 22:38:43.46 ] 皆さん丁寧に教えて下さりありがとうございます。 >>538 のgithubを見た感じでは読み進めるのに難がありそうなので、 paipとどう書く.orgを手がかりに勉強していきます
542 名前:デフォルトの名無しさん [2011/12/08(木) 07:32:22.36 ] >>532 簡単な用例などありますか?
543 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 19:19:45.33 ] >>536 >オレイリーの本って幻っぽい。あの作者が早く健康を取り戻すことをお祈りしておくよ。 作者がどうかしたのですか?倒れたとか…
544 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 20:09:49.07 ] >>543 lisp-book.org/ Nine months into the project my rubbish state of health forced me to abandon being an O'Reilly author and all work on the book ceased. 遠まわしな言い方も含まれてるけど、健康がガタガタでオレイリーの著者に なるのを捨てさせられて、本を書くことを中止した と書いてるのね。ひどい健康問題みたいね。
545 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 22:59:01.24 ] >>544 そういうことですか 残念ですね
546 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 23:11:54.76 ] < O'Reillyの著者になることは諦めざるを得なくなり、その本に関することは全てやめました。
547 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 23:20:03.51 ] >>546 Thanks よく考えたら、 健康であきらめざる負えなくなったことが、 お礼リーかなんかにやめされられたと受け取れん書き方になってた^^;
548 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 23:23:24.16 ] オレイリーって発音も許容されるの?
549 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 23:27:54.90 ] 研究社のリーダーズを調べた O'・Reil・ly /ouraili/ ouでは英語で母音が連続するから、 オウライリーとオーライリーの中間?って感じか
550 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 23:43:46.15 ] 社名 株式会社オライリー・ジャパン www.oreilly.co.jp/index.shtml
551 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 00:13:08.63 ] aeだとおもってたけどaやった?
552 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 00:15:39.80 ] ja.forvo.com/word/o%27reilly/ しらべた
553 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 00:28:42.72 ] >>542 >>532 じゃないけど、一例。あんま簡単じゃないかも。 (let ((x 0)) (do ((x 1 (1+ x)) (y x x)) ((> x 5)) (print y))) ;-> 0 ; 1 ; 2 ; 3 ; 4 (let ((x 0)) (do* ((x 1 (1+ x)) (y x x)) ((> x 5)) (print y))) ;-> 1 ; 2 ; 3 ; 4 ; 5
554 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 05:48:22.25 ] >>553 doって何者だ? CL-USER> (let ((x 9)) (do ((x 1 (1+ x)) (y x x)) ((> x 5)) (print y))) 9 1 2 3 4 NIL CL-USER> (let ((x 9)) (do* ((x 1 (1+ x)) (y x x)) ((> x 5)) (print y))) 1 2 3 4 5 NIL
555 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 09:53:45.07 ] lの二列目だけを抽出できないでしょうか? CL-USER> (let ((l (ql:system-list))) (first l)) #<QL-DIST:SYSTEM 3b-swf / 3b-swf-20110110-git / quicklisp 2011-12-03>
556 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 12:02:18.15 ] Pythonの対話式シェルで > (import os) エラーが出て、5分ぐらい悩んじまった。
557 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 16:10:58.03 ] xachさんがl1sp.org/ を作ったみたい。便利 slimeのファジー補完と同じ事を使って検索もできる。
558 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 16:47:22.71 ] オラ入り
559 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 22:35:20.44 ] カツマーが高校時代にlisperだったというんだけど、 勝間和代さんと語る─キャリア形成にSNSをどう使う?/Tech総研 rikunabi-next.yahoo.co.jp/tech/docs/ct_s03600.jsp?p=002018 日本の高校生が扱うことの出来たlispってどういう種類があるの? 16歳のときに1984年だから高校時代とcommon lispの制定とかぶると思うんだけど、 そのときに一般人(かどうか知らないけど)がlispの環境をどれくらい触れたのか知りたい common lispはその中でもレアだったのかも
560 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 22:38:40.20 ] パソコンだとmuLisp86、SLISPとか。 大型やオフコンが大学にあればUtiLisp、SLISPとか。 SLISPはREDUCEが実装されていたからあちこちにポートされていた。
561 名前:デフォルトの名無しさん [2011/12/09(金) 22:45:46.16 ] >>554 マクロでしょ
562 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 22:46:39.38 ] あ、そうか >隣にある大学の校舎にあるコンピュータ室まで行くんですが、当時はまだパソコンじゃなくてマイコン。パンチカードの時代でした。 wikiで確認したら、慶応の高校に通っていたみたいだから、 慶応にあったlispシステムを使っていたのか
563 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 00:17:23.52 ] KOとlispなら本を出してる人おったよな。お盛んだったんじゃない?
564 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 00:18:52.00 ] べちとかかつまーとかうっさんくさいひともリスパか。べちは掲示板作ってたんじゃなかったっけ?
565 名前:559 mailto:sage [2011/12/10(土) 00:31:03.78 ] >>560 ありがとうございます mulisp86がよく分からないのですが、ciniiから見れる昭和64年の情報処理学会の報告を見ると ms-dosで動くのかということは分かりました どういう処理系だったのでしょうか
566 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 00:42:45.46 ] >>555 二列目ってその例だと3b-swf-20110110-git? それで良いなら、 (let ((list (ql:system-list))) (mapcar (lambda (system) (let ((release (ql-dist:release system))) (ql-dist:prefix release))) list)) データ構造を調べたいなら、C-c Iしてインスペクタで調べると良いよ。
567 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 00:50:38.36 ] >>557 それ前からあるよ。 逆引きCLとか、Common LISP users jpとかで使ってる。 HyperSpecへのリンクとか全部そこ経由。超便利。 > You knew about l1sp.org, right? The redirect site I made a few years > ago to make it easy to share links to Common Lisp documentation? 公開されたのはコード。 > Well, I just released its source code on github. Enjoy!
568 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 06:23:40.94 ] >>566 回答、ありがとうございます。 言葉足らずですいません。(ql-dist:name release)で3b-swfの列をゲットできました。 C-c Iで#<QL-DIST:SYSTEM 3b-swf / 3b-swf-20110110-git / quicklisp 2011-12-03>でエラーになるんですが、 どうやって調べるんでしょうか? CL-USER> (lambda (x) (+ x x)) #<FUNCTION (LAMBDA (X)) {1002B4983B}> また#<FUNCTION (LAMBDA (X)) {1002B4983B}>も調べられるんでしょうか?
569 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 16:37:11.64 ] >>578 ほんとだ 訂正ありがと。
570 名前:デフォルトの名無しさん mailto:age [2011/12/10(土) 16:48:22.12 ] >>578 に期待 age
571 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 18:18:33.01 ] >>568 名前なら、releaseじゃなくて(ql-dist:name system)でも大丈夫なはず。 ASDFで定義してるシステムの名前が取れると思う。 それと、#< ... >ってのは、REPLがCLOSオブジェクトをwriteで印字したもので、 オブジェクトそのものじゃないから、それ自体はインスペクトできないんよ。 で、(lambda (x) (+ x x))という式が返す値をインスペクトすることはできる。 SLIMEのREPLなら、最初か最後の括弧の上、slime-modeのバッファなら、 その式の直後でC-c Iすれば、 > Inspect value (evaluated): (lambda (x) (+ x x)) って表示される。Enter押すとインスペクタに入ってゴニョゴニョできるよー。 色んな所で試してみると楽しいぜー。 >>578 お前優しいな。
572 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 18:22:05.97 ] ちょっと訂正。 「CLOSオブジェクトをwriteで」→「オブジェクトをwriteで」
573 名前:デフォルトの名無しさん [2011/12/10(土) 23:15:47.81 ] いま皆既月食中だお! お空を見てみ
574 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 23:53:43.96 ] みたお!
575 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 13:42:10.26 ] paip3章の演習3.6で、 let形式の値が (LOCAL-A LOCAL-B LOCAL-B GLOBAL-A LOCAL-B) となるのですが、このうちglobal-aになる理由が分かりません letの(a ' local-a)の影響を受けてlocal-a になるのかと思ったのですが、そうないのは何故なのでしょうか
576 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 01:52:31.15 ] >>575 89ページのsymbol-valueの説明を見ること. (symbol-value 変数)でスペシャル変数の現在の値を取得する。 レキシカル変数じゃないよ
577 名前:デフォルトの名無しさん [2011/12/12(月) 07:50:42.44 ] ubunto11.04 sbcl slimeでなぜかmapがエラーになるのは 何故でしょうか