[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 06/03 12:44 / Filesize : 297 KB / Number-of Response : 927
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【入門】Common Lisp その8【質問よろず】



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がエラーになるのは
何故でしょうか






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<297KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef