【入門】Common Lisp その6【質問よろず】at TECH
【入門】Common Lisp その6【質問よろず】 - 暇つぶし2ch313:デフォルトの名無しさん
09/06/14 22:33:40
>>312
手を動かしているよ。
飛ばした章に書かれている内容は大雑把だけど、把握していて、読みたい章で飛ばした章の内容が出てきたら、戻るようにしている。
schemeは多少ゴリゴリやったので、Lispはちょっと実験的に章ごとの拾い読み的な勉強法を試している感じ。

304の話は、軽く調べた限りでめぼしいのがなく、初級レベルのレスも過疎っていたので、質問させていただきました。

314:デフォルトの名無しさん
09/06/14 22:42:33
string-to-integerといってる時点でSchemerと気がつくべきだったな。私がニブかったね。
PCLを原文で読めるくらいなら、LOOPは書けなくても読めると思うけどやっぱキモいかね。
英語圏の連中が自然に読み書きできる事をめざしていたそうだが・・・まぁSQLもそんな事いってたけど

315:デフォルトの名無しさん
09/06/14 22:58:49
COBOL もそんなこと言ってたよな

316:デフォルトの名無しさん
09/06/14 23:43:49
>>301
ダメでした
eclipseを使うことを勧められたのでそちらでやってみようと思います
ありがとうございました

317:デフォルトの名無しさん
09/06/15 01:56:24
Lispは処理系なり何なりがバラバラすぎる

自由度が重要なのは分かるけど、ただでさえ少ない人口が更に分散してる

318:デフォルトの名無しさん
09/06/15 15:49:11
人口多い言語はエラーメッセージ検索するとすぐひっかかるからいいよね

319:デフォルトの名無しさん
09/06/15 17:10:53
>人口多い言語はエラーメッセージ検索するとすぐひっかかるからいいよね
すぐググるという思考になって、よくない気もするけどなあ。
軽くググったりもするだろうが、10時間ぐらい悩むのがいいんじゃないだろうか。
いろいろ試行錯誤しても解決しないということは、いいことだし。肥やしになる。

解決するためには英文も読む必要が出てきて、英語の力もつくし。

奥村晴彦のアルゴリズム辞典という本があるけど、Lisp版って需要あるのかな。
ネットでLisp版サンプルコードを晒すだけなんだが。
コメント入れて、読みやすくはするつもりではいる。

320:デフォルトの名無しさん
09/06/15 17:18:48
ググらなくてもソースコードの中検索すれば大抵すぐ解決するでしょ

321:デフォルトの名無しさん
09/06/15 17:26:20
> 奥村晴彦のアルゴリズム辞典という本があるけど、Lisp版って需要あるのかな。

覚え始めのころにちょっと挑戦してみたことがある。
魔方陣のコードが見た目凄いことになったのでマクロを覚えて書き直したら
他人に分ってもらえなくなったw

322:デフォルトの名無しさん
09/06/15 17:34:46
似たものでnumerical recipes in C のlisp版ソースを公開しているものが
あったけど、cをそのまんまcommon lispに直しているだけで、あれはだめだ
ひどいと思ったから、それそうとうのlispらしさを出す努力だけはしてね。

323:デフォルトの名無しさん
09/06/15 18:04:41
>>322
> ひどいと思ったから、それそうとうのlispらしさを出す努力だけはしてね。
ハードルをあげるのは好きだなw
lispらしさってlisperが思うlispらしさだろ。そんな10年ぐらい触らないとわからないんじゃないのかな。
とりあえず、糞コードを書いて、数年単位ぐらいで書き直して、精度を上げていけばいいんじゃない?
もちろん、過去の糞コードも残して。

そのくらいのスタンスだったら凡人でも鑑賞に堪えるものができるかなと思っているんだけど。

324:デフォルトの名無しさん
09/06/15 18:43:21
>>319の前半に同意なだけに
そんなの自分でやらせたらどうよと思うw

Cのソースからの単純な置き換えでなんとかなってしまうだけに
「lispらしい」例を少しぐらいは示しておくのでないと

325:デフォルトの名無しさん
09/06/15 18:44:35
> そんなの
ってのはlispへの書き換えのことね

326:デフォルトの名無しさん
09/06/16 12:27:52
>>324
らしさ、というと抽象的です。だけども、多値を使うということは意識できるだろう
マクロを使い過ぎというのも一時のもの(あれはlisperの中二病ですね。)だし、そこ
まではする必要はない。まして、最適化まではもとめないよ。loopかmap系かみたいな
ところも好みがあるので、それもらしさという意味ではどっちでもいいよ。また、
schemeとcommon lispでも違いはあるけども。

>>323
もし10年と考えているならば、それはあまり使ってない人だと思う。和訳も出ている
norvigのcommon lispのスタイルに関して記述したものくらいは読んで理解できると
思うがね。そのコードが見本になるものくらいの気持(決っして、そこまで要求しな
いけど、)はもっておいてほしいだけさ。そこに努力の意味が入っている。

327:デフォルトの名無しさん
09/06/16 14:28:54
聞く耳持たないんなら黙って実行しろよ

328:デフォルトの名無しさん
09/06/16 20:10:51
ごめん、何がしたいのか分らない。

329:デフォルトの名無しさん
09/06/16 20:36:48
CからLispへのトランスレータで解決だね

ていうか奥村さんのその本ちゃんと見たのかなー
ぱっと見で楽そうとか思ってね?

330:デフォルトの名無しさん
09/06/18 20:42:32
lispにforがないのはなんで?

331:デフォルトの名無しさん
09/06/18 21:22:11
LOOPマクロにある FOR じゃ駄目なのかい…まぁ、煽りなんだろうけど

332:デフォルトの名無しさん
09/06/18 21:35:09
>>330
君も知ってる通りLisperは再帰を使うのさ。って言って欲しかった?

333:デフォルトの名無しさん
09/06/19 00:10:11
>>330
自分で作れるから

334:デフォルトの名無しさん
09/06/19 00:28:40
LISPってC言語より古いんだぜ?
for(初期化付き繰り返し)の原型が最初に出てきた言語って何だろ


335:デフォルトの名無しさん
09/06/19 00:43:50
FORTRANじゃないの?

336:デフォルトの名無しさん
09/06/19 00:56:30
>331
煽りじゃないです>< ググってみます

>>332-334
りすぱーへの道のりは通そうです><

337:デフォルトの名無しさん
09/06/19 01:04:37
本気なの?じゃあ答えるけど、C風のforなら
for (int i=0; i<10; i++) {
...
}
は、次の LOOP 式とほぼ同等
(loop for i from 0 below 10 do
...)
だし、Perlみたいなforを想定してたなら
for my $i (@lst) { ... }
これ
(loop for i in lst do ...)

まぁ、こいつはらforじゃなくてloopだろとか字面の話なら、存在しないってことでもいいけど

338:デフォルトの名無しさん
09/06/19 03:36:14
doのことも忘れないであげてね

339:デフォルトの名無しさん
09/06/22 13:20:40
初心者です。本で勉強してます。再帰関数をつかった問題を解いていて
自力で解けず、解答のコードを見ても再帰関数がどう動いて値を返してるのか
把握出来ません。例を当てはめても、理解出来ないこともあります。

こういう作業をするときはこのコードを使うと1:1で対応させて
暗記してしまえば良いんでしょうか?それとも、悩みぬいた方がいいんでしょうか?


340:デフォルトの名無しさん
09/06/22 13:37:29
コンピュータ上で動かしながら考えたらいいと思うよ
いわゆるprintfデバッグでもいいし、traceもあるし、デバッガも使えるし。

341:デフォルトの名無しさん
09/06/22 13:38:34
再帰の理解は基礎の基礎。ちゃんと理解しなさい。
どうしてもダメなら自分では再帰は書かない、あらゆる処理をループで書くと決意する。
理解していないのに暗記で書くなんて最悪だ。


342:デフォルトの名無しさん
09/06/22 13:55:44
理解する方がいいのは当たり前だが、暗記がそれほど悪いわけでもないと思うけどなあ
暗記で書くのとライブラリを使うのとは本質的に同じだ

使うライブラリはすべて理解しろと言うわけでもないだろうし

343:デフォルトの名無しさん
09/06/22 14:02:51
> 暗記で書くのとライブラリを使うのとは本質的に同じだ

んなわけない。まあ書くのも使うのも自分一人なら同じかも知れないが。

344:デフォルトの名無しさん
09/06/22 14:24:02
>>339 そんなあなたに little schemer


345:デフォルトの名無しさん
09/06/22 14:47:12
doとかloopの使い方なら暗記で良いけど、
再帰関数はコードが読めないと何をしているかわからなくなるよ。
自分も教えられるほど理解してないけど、基本的には、呼び出し側の関数に呼び出された関数を展開するように考えればいいと思う。

346:デフォルトの名無しさん
09/06/22 17:30:51
みなさん、レスどもです。理解するまでやってみます・・・
ネスト入ると、頭が沸騰しちゃいますね・・・


347:デフォルトの名無しさん
09/06/22 18:25:49
ネスト?相互再帰とかかな。どんなので沸騰してるんだろ。

348:デフォルトの名無しさん
09/06/22 20:23:39
再帰関数hogeの中で、別の再帰関数higeが呼ばれて
higeの引数にhogeが渡されるような関数です。
動きを頭の中で追おうとすると沸騰します。

349:デフォルトの名無しさん
09/06/22 23:01:07
>>348
人の関数を追いかけるからだよ
再帰で物がきれいにかけても人の考えまでは見えないからね

自分で再帰関数の定義を自在にできるようになるまでは相互呼び出し系は鬼門だとおもうよ(再帰に限らず関数ポインタ渡すCとかも)


350:デフォルトの名無しさん
09/06/22 23:08:21
「処理の流れ」をおっかけようとしているのが原因じゃないかな。(他の言語の経験があると仮定すると、ですが)
「どう動くか」じゃなくて、「何をやっているのか」を読めるようになるといいと思う。
停止条件と、次の呼び出しのときにどう問題を細かくしていくのか、に注目してみよう。

351:デフォルトの名無しさん
09/06/23 00:13:06
>>344
little MLerって本もあるらしい。

352:デフォルトの名無しさん
09/06/24 18:22:40
>>349
>>350
はい、処理をおっかけてとりあえず理解しようとしていましたが、問題を一つ解くのに
エライ時間かかりましたし。何をやっているかを読むようにしてみます。
>>351(>>344)
余裕が出来たら、読んでみます

353:351
09/06/24 21:29:07
>>352
ごめん、MLスレと間違えたんだ。無視してください。

354:デフォルトの名無しさん
09/06/24 21:56:05
maximaが静的スコープなのを確認した

355:デフォルトの名無しさん
09/06/26 00:03:38
lispboxを触ってみたら、さっそく分からないことが・・・。

Emacs上で以下のリストを書いてC+c C+kでロードしたら
(setf mat_A '(((1 2) (5 4)) ((1 2) (2 3))))

↓こんな警告がでた。
-+ Warnings (1)
`-- MAT_A is neither declared nor bound,
it will be treated as if it were declared SPECIAL.

警告自体はあまり気にしてないんだけど、警告画面が消せない。
警告画面を消してslime-repl画面に移動するにはどうすれば
いいんでしょうか?


356:デフォルトの名無しさん
09/06/26 00:45:29
>警告画面を消してslime-repl画面に移動するにはどうすれば
>いいんでしょうか?
Ctrl-H b
でキーバインドが表示される

Slime環境で楽しくLispを学ぶって事ならまずemacsの操作をおぼえなきゃいけない。
おまえさんが未だにemacsのキーバインドになれていないならeclipse+CUPSと言う環境に触れるのもいいかもしれない
また、Slimeにどっぷり浸かるつもりならCtrl-H tでemacs自体の学習が開始されるのでそれを先に済ませるのもいいかもしれない

URLリンク(journal.mycom.co.jp)



357:デフォルトの名無しさん
09/06/26 01:09:06
>>355
lispboxについてはよくわからないし、初心者に毛が生えたレベルだけど、
警告出たら、qなり、Ctrl-x oなりすればいいんじゃないの?


358:デフォルトの名無しさん
09/06/26 06:16:54
消したいウィンドウのモードラインで右クリックしたら消える

359:デフォルトの名無しさん
09/06/26 08:56:21
slime-compilation-finished 辺りを書き換えるか、
slime-compilation-finished-hook で警告を消せばいいんじゃないの?
slime はかなり読みやすいんだからこれくらい自分で探せよ

360:デフォルトの名無しさん
09/06/26 20:09:01
破壊的リスト操作をする関数を非破壊的操作に変えたいんだがなにか良い方法はないかな?
関数でsetqはあまり良くないよね


361:デフォルトの名無しさん
09/06/26 20:22:32
破壊的操作がされることを期待して書かれたコードがあったりしない?
大丈夫?

362:デフォルトの名無しさん
09/06/26 20:44:06
(defun non-destructive-function (list)
  (destructive-function (copy-list list)))

3秒で書いたのでどうなっても知らない

363:デフォルトの名無しさん
09/06/27 10:44:15
>>356
ありがとうございます。
ふだんxyzzyは使うんですが、emacsには慣れてなくて。

>>357-358
ありがとうございます。
それでうまくいきました。

>>359
サーセン、無理ッス。

364:デフォルトの名無しさん
09/06/27 16:47:40
cond式で複数の値を返すってできる?


365:デフォルトの名無しさん
09/06/27 17:26:20
>>364 values 使うだけちゃうの?

CL-USER> (cond (nil (values nil t))
(t (values t nil)))
T
NIL
CL-USER>


366:デフォルトの名無しさん
09/06/28 02:27:58
再帰の利点って何ですか?
最適化でループになるのなら、初めからループで書けば良いと思うのですが

367:デフォルトの名無しさん
09/06/28 02:36:56
それは、再帰が何か特別な物に見えている人(再帰を消化しきれていない人)の
発想じゃないかなぁ。
ある動作を素直に表現しようとした時に、それが再帰と呼ばれるものを使用している場合がある。
他のあらゆる技法、概念と同じだよ。

368:デフォルトの名無しさん
09/06/28 03:07:08
>>366
再帰にすることで、構造が非常にはっきりする(場合がある)という利点はあるよ
ループのほうが速ければ、別に再帰にする必要なんかない
カルト宗教じゃないんだから

369:デフォルトの名無しさん
09/06/28 03:17:10
再帰はイメージできるようになったんだけど、loopの構文ってどうやって覚えればいいの?
loop構文で出てくる単語を覚えられない。
読むのは、いじっていればなんとかわかるんだけどなあ。

370:デフォルトの名無しさん
09/06/28 10:32:43
loopは、別に使えなくていいらしい。
構文の重箱の隅をつつくような使い方をすると、
ちゃんと動かなかったりするらしい。
…と初心者の聞きかじり。

371:デフォルトの名無しさん
09/06/28 10:49:37
関数の引数に大域変数を渡すと、その大域変数に値を代入してくれる関数って作れる?
rplaca,rplacdを使わないで

372:デフォルトの名無しさん
09/06/28 10:53:19
何を言っているのだお前は

373:デフォルトの名無しさん
09/06/28 11:22:02
イミフ。そもそも大域変数って何か分かってんのか?

374:デフォルトの名無しさん
09/06/28 11:23:03
>>372
(defun settest (x) (setq x 123))
で(settest y)としてもyに値を入れてくれないじゃん
どうすればいいの?

375:デフォルトの名無しさん
09/06/28 11:24:23
つ マクロ

376:デフォルトの名無しさん
09/06/28 11:33:36
>>374
関数に副作用持たすのはよくない傾向と共通認識があるからそもそも問題にならない
呼び出し側でsetfすればいい話

377:デフォルトの名無しさん
09/06/28 11:43:12
(defun settest (x)
(setf (symbol-value x) 123))
(settest 'y)

378:デフォルトの名無しさん
09/06/28 11:49:53
>>376
何を言っているのだお前は

379:デフォルトの名無しさん
09/06/28 19:07:50
URLリンク(www.komaba.utmc.or.jp)
まぁここでも見とけ

380:デフォルトの名無しさん
09/06/29 18:06:35
マクロの質問なのですが.

(defvar *test*
'(("aaa" . "bbb")
("ccc" . "ddd")))

(defmacro build-toolbar (val)
`(progn
,@(loop for i in val collect
`(print ,(car i)))))

こういうマクロを書いて

(progn
(print "aaa")
(print "ccc"))

こうなることを期待したのですが.

(build-toolbar *test*)
とやると,The value *TEST* is not of type LIST.
と出てしまいます.
どうすればよいのでしょうか?.
ちなみに,,@(loop for i in *test* collect...とやるとうまくいきます.

381:デフォルトの名無しさん
09/06/29 18:16:16
defvarで*test*が束縛されるのは実行時。
マクロが展開されるのはコンパイル時。

382:デフォルトの名無しさん
09/06/29 18:18:31
>>381
それかーっ!
ありがとうございます

383:380
09/06/29 18:22:44
うーん,原因はわかったんだけど解決法がわからない...
そもそも定数値をマクロに渡すような手法は間違っているのだろうか...

384:デフォルトの名無しさん
09/06/29 18:22:47
> ちなみに,,@(loop for i in *test* collect...とやるとうまくいきます.
てことは展開時に *test* はそのリストに束縛されてんだろう

(build-toolbar *test*)
のマクロ展開時に val が束縛されてるのは symbol *test* であって、その
値である '(("aaa" . "bbb") ...) ではないからじゃね?


385:デフォルトの名無しさん
09/06/29 18:28:51
the value *TEST* だからそれだな。

386:デフォルトの名無しさん
09/06/29 18:31:18
両方?

387:デフォルトの名無しさん
09/06/29 20:23:11
>>380
(defmacro foo (val)
`(mapcan (lambda (x) (print (car x))) ,val))

(defmacro bar (val)
`(eval (cons 'progn (loop for i in ,val collect (list 'print (car i))))))

388:デフォルトの名無しさん
09/06/29 23:25:17
>>380
(defvar *test* '(("aaa" . "bbb") ("ccc" . "ddd")))

(defun foo (val)
`(progn ,@(mapcar (lambda (x) `(print ,(car x))) val)))

(defmacro build-toolbar (val)
(let ((m (gensym)))
`(macrolet ((,m () (foo ,val)))
(,m))))

389:デフォルトの名無しさん
09/06/30 01:35:37
なんでおまいらそんなにひねくれてるんだ

390:デフォルトの名無しさん
09/06/30 07:48:27
>>380に書いてあることを素直にやればいいんだ。

> ちなみに,,@(loop for i in *test* collect...とやるとうまくいきます.

うまくいくマクロを定義するマクロを書く。

391:デフォルトの名無しさん
09/06/30 08:35:02
>>381のような誤解もあるので書いておくことにする。
>>380の最後に書いてあるように、大域変数の値に実際にマクロの定義文内で
アクセスすることは可能。でもトップレベルスコープであるマクロの展開中は
大域変数にしかアクセスできないのでふつうは>>387-388のように書く。

392:デフォルトの名無しさん
09/06/30 09:39:11
>>391のような誤解もあるので書いておくことにする。

URLリンク(www.lispworks.com)
> Normally, the top level forms appearing in a file compiled with
> compile-file are evaluated only when the resulting compiled file is
> loaded, and not when the file is compiled.

コンパイル環境と実行環境が理解できていないんだろうな。

393:デフォルトの名無しさん
09/06/30 16:58:27
あたしネカマだけど、マクロ展開とコンパイルを区別できない男の人って・・・

394:デフォルトの名無しさん
09/06/30 17:18:39
>>380のdefvarとdefmacroがコンパイルしたい同じファイル内にあるならそうだけど、
そんなこと書いてないじゃん。質問がreplでは通るのにcompile-fileできません><なら
ともかく、>>381の回答は明らかに状況が判ってないだろ。
実際、compile-fileが評価される前に評価されたdefvarの値をマクロ定義内で参照してる
ファイルはコンパイルできる品

395:デフォルトの名無しさん
09/06/30 17:22:42
clisp使ってるんですけどプログラムを走らせてる途中でメモリーが足りないというような
メッセージが出たんで一旦止めて

$ clisp -m 768KB program.fas

という具合に -m オプションをつけて走らせたんですけど、同じようにメモリーが足りないという
メッセージがでます。

ps でメモリーの使用量を調べたら30%も使ってませんでした。
これってclispのバグとかでしょうか?


396:デフォルトの名無しさん
09/06/30 17:23:06
ネカマの振りして後から必死で言い訳か。まあ頑張れ。

397:デフォルトの名無しさん
09/06/30 17:42:20
ついでに、たいていの処理系ではREPLで(defun ...)を評価しただけでコンパイルまで
されちゃうってことも知っておいてね☆

398:ネカマ
09/06/30 17:48:06
あたし頑張る!!

トップレベルの式がコンパイルするときには評価されないとか 全 く 関係ないから
>ちなみに,,@(loop for i in *test* collect...とやるとうまくいきます.
と書いてあるんだから、すでに *test* は束縛されてることがあきらかなのに
トップレベルの式はコンパイル時に評価されないとかズレたこと言い出す >>392
は無能すぎ
質問に答える価値なし
たとえ defvar 式がトップレベルに書いてあるファイルをコンパイルしてても
元々束縛されてるものはちゃんと束縛されてますから
小学校からやりなおしてね

>>395
申し訳ないが、今は>>392で遊ぶのに必死で、あなたの質問に答える余裕がないことを
どうか許してもらいたい

399:デフォルトの名無しさん
09/06/30 17:56:54
いつから幼稚園になったのこのスレ

400:デフォルトの名無しさん
09/06/30 18:10:16
おれはむしろ一度たりとも小学校レベルにたどり着いたことがあるのか知りたい

401:デフォルトの名無しさん
09/06/30 18:45:15
良く分からないんだけど、彼は何でこんなにヒートアップしてんの?

402:デフォルトの名無しさん
09/07/01 01:35:25
WindowsXP上で、CLisp(2.47) + ActiveTcl(8.4) + ltk(0.91) を使い、
テキストボックスを表示させてキー入力すると固まってしまいます。
(ウィンドウが完全無反応になる)

要はltkを使いたい(CLでGUIアプリを作りたい)のですが、
1.上記組み合わせ(CLisp + ActiveTcl)で解決方法はありますか?
2.ない場合、上記現象がおきない処理系の組み合わせを教えてください
(AllegroCLとかLispWorksといった有償のパッケージは使わない方向で)

403:デフォルトの名無しさん
09/07/01 03:26:13
LispWorks personal (無償)+ CAPIはだめなの?


関係ないかもしれんが、もしお商売の一環としてやるならフリーウェアを使うことでよけいに
手間がかかることの潜在的なコストというのも考えるべきだと思う。

404:デフォルトの名無しさん
09/07/01 05:11:52
>>403
LispWorksは日本語のリテラルが入ったソースの扱いで困る
ACLは店頭で気軽に買えないので困る(通販でも買えないし)

>>402
文字コード関係の問題だと思った過去スレ4だかに同じような話が出てたよ


405:402
09/07/01 20:30:57
過去スレ3にあった文字コード関連の設定を行ってみましたがダメでした。
((defun wish-enable-japanese… や (setf sb-impl::…)といったもの)

CLispの代わりにSBCL(1.0.20)を使ってみると、固まらずに動きました。
Windows版のSBCLは不安定、といった感じの文章をみたことがあるので、
できれば避けたかったのですが。

406:デフォルトの名無しさん
09/07/02 01:05:48
>>405
> ((defun wish-enable-japanese… や (setf sb-impl::…)といったもの)
CLISPつかってるのにsb-implを設定とな?

407:402
09/07/03 09:09:14
新規に別マシンにインストールしたところ、固まらずに動作しました。
狐につままれた感じです。OSの違いが関係あるのでしょうか???
(以前)Windows XP Home SP1
(今回)Windows XP Pro SP2

一応各モジュールのバージョンを書いておきます。
CLisp 2.47
ActiveTcl 8.4.15.0.280619
ltk 0.91

408:402
09/07/03 09:10:03
すいません、ageてしまいました

409:デフォルトの名無しさん
09/07/03 14:52:52
>>406は無視か…

410:デフォルトの名無しさん
09/07/03 15:03:00
多分難しくて理解できないんだろう

411:デフォルトの名無しさん
09/07/08 08:11:01
LISPでネタプログラム作ろうぜ!まずは俺から。
CL-USER(1): ;; Setting (stream-external-format *terminal-io*) to :emacs-mule.
CL-USER(2): (defun ^o^ () '(^o^))
^O^
CL-USER(3): (^o^)
(^O^)
CL-USER(4):

412:デフォルトの名無しさん
09/07/14 22:18:57
LispにJavaのURLクラスのようなものはありますか?

Webサイトを読み込みたいのですが

413:デフォルトの名無しさん
09/07/14 22:44:58
Drakmaつかえ

414:デフォルトの名無しさん
09/07/14 23:03:44
>>413
レスありがとうです。
やっぱりライブラリがあるんですね。

415:デフォルトの名無しさん
09/07/15 08:20:33
format関数の値を返さないようにする方法ってある?
値を返さない組み込み関数があるといいんだけど。

416:デフォルトの名無しさん
09/07/15 09:01:40
>>415
意味がわかりません
関数は必ず値を返します
elispでいうignore関数みたいなものが欲しいって事?

417:デフォルトの名無しさん
09/07/15 09:59:18
(defun my-format (stream format &rest args)
(apply #'format stream format args)
(values))

418:デフォルトの名無しさん
09/07/15 10:01:52
;; 書き忘れ: 値を返さないことが嬉しいってどういう場合なのか聞いてみたい

419:デフォルトの名無しさん
09/07/17 05:29:14
>>418
こっそり変化かぁ。おもいっきり副作用じゃないの。
たぶん言語的なものじゃなくて、機械語に変換される際の高速化に影響する場合
といったものだと思うよ。それも処理系依存だから、特殊な条件がかさなるよ。

420:デフォルトの名無しさん
09/07/17 12:20:20
formatって何が返るんだっけ
まあ関数型言語だし、何も考えずとも最適化されとるよ

421:デフォルトの名無しさん
09/07/17 22:03:26
nilとか返すよ
(do ((n 1 (* n 2)))((print (format (< n 1000) "~A" n))))

422:デフォルトの名無しさん
09/08/01 21:15:00
yaclmlを使ってcgiを作ろうと思うのですが
(require 'asdf)
(asdf:oos 'asdf:load-op :yaclml)
をしたときに
; loading system definition ...
などと出力されますよね?
この情報?の出力をやめさせたいときは、どうすればいいのでしょうか?

423:デフォルトの名無しさん
09/08/03 10:05:30
ch-whoじゃだめなの?

424:デフォルトの名無しさん
09/08/04 04:47:53
>>423
cl-whoでやりたいことはすべてできそうです。ありがとうございました。

425:デフォルトの名無しさん
09/08/05 03:27:16
>>422
CommonLispでcgiって遅くない?
動作は速いんだけど、起動してロードする時間かかりすぎた気がする。
結局その時はHTTPサーバとかも全部Lispにしたんだけど、なんか速くなる方法あるんですか?
コンパイルしといても時間かかるでしょ?
ECLとかでスタンドアローンにするのかな?

gaucheとかだとCGI速いんだけど、やっぱCLのほうが使いやすいからなー。
実用的速度で使える方法があるなら知りたい。


426:デフォルトの名無しさん
09/08/05 03:49:43
>>91
の言っている事って、C++では普通関数アダプタ(bind2stみたいなので)使って解決するもんだよ。

template<typename T, typename F>
void update(T& obj, F func)
{
func(&obj);
}

Foo foo;
Bar bar;

update(foo, mem_fun(&Foo::update));
update(bar, bind2nd(mem_fun(&Bar::update), true));

なんで、CLOSでも同じ事すれば万事解決じゃないかな?
C++はマルチパラダイムなんで、普通にCLOSと同じ事をしているってことだね。


427:デフォルトの名無しさん
09/08/05 07:49:38
起動してロードする時間が少ないのはclispってどこかに書いてあった

428:デフォルトの名無しさん
09/08/05 08:37:44
>>425
fastCGI 的なことをするしかないと思う。
mod_lisp はあんまりメンテされてないという噂も。

429:デフォルトの名無しさん
09/08/05 08:52:38
普通はdumpするから起動したら既にロードし終わってるんじゃないの?

430:デフォルトの名無しさん
09/08/05 09:21:26
>>429
その時間がかかるのには違いない罠。

431:デフォルトの名無しさん
09/08/05 12:10:39
>>429
なんだかんだで大きなcore読まないとならんでしょ
短いcgiならfastcgi使うのがいい、システムが大きくなりそうならHunchentootとか


432:高崎佳子
09/08/11 00:12:02
「実践 Common Lisp」を買いました。
また分からないことがありましたら質問にきます。

433:デフォルトの名無しさん
09/08/11 01:04:00
買った報告なんていらねぇよ。
値段や表紙のデザイン程度でもなんか感想くらい書けよ。

434:デフォルトの名無しさん
09/08/11 02:52:59
何を実践するのか判らないね

435:デフォルトの名無しさん
09/08/11 19:04:24
>>434
URLリンク(pds.exblog.jp)

436:デフォルトの名無しさん
09/08/17 19:56:21
FreeBSD 7.2-RELEASE-p2 で Allegro CL 8.1 Free Express Edition を使おうとしています。
URLリンク(www.franz.com)から指定されたファイルを落として
URLリンク(www.franz.com)
に従って解凍し、
% ./newlicense
したのですが、
/libexec/ld-elf.so.1: Shared object "libpthread.so.2" not found, required by "newlicense"
と言われてしまいます。どうしたらインストールを完了できるでしょうか。

437:デフォルトの名無しさん
09/08/17 20:19:51
>>436
pthread 入れろ

438:デフォルトの名無しさん
09/08/17 21:29:50
>>436
/etc/libmap.conf を作って
libpthread.so.2 libthr.so
とか, 書き込むと幸せになれるかも知れない

だめだったら, あきらめろ


439:438
09/08/17 21:37:56
>>436
追加 ${PORT}/misc/compat6x をいれるってのもありかもしれない
それでもだめだったら本当にあきらめるしかないっぽいな


440:436
09/08/17 21:48:04
misc/compat*をインストールしたところうまくいきました
ありがとうございます

441:デフォルトの名無しさん
09/08/17 23:35:36
> pthread 入れろ
libpthread.* は *BSD には無条件でインストールされるはずなのに
どんな意味で言ってるんだろうか?


442:デフォルトの名無しさん
09/08/19 11:26:15
Common LispでSRFI-*の関数が使いたい時、一つ一つ移植してオレオレライブラリに追加してるんだけど、
これって非効率すぎるよね?皆さんどうしてるの?


443:デフォルトの名無しさん
09/08/19 18:43:12
そんな時はない

444:デフォルトの名無しさん
09/08/19 21:33:30
Windows環境でいちばんお勧めな処理系ってなんでしょ?

445:デフォルトの名無しさん
09/08/19 21:55:09
手頃なとこでclispでいいんでないかい

446:デフォルトの名無しさん
09/08/19 22:44:49
>>445
ありがとう。やはりclispが妥当ですか。

447:デフォルトの名無しさん
09/08/20 04:24:24
Windows上でThread使える環境ってACLしかないのかな?


448:デフォルトの名無しさん
09/08/20 06:54:54
どうしてそう思ったのかな?

449:デフォルトの名無しさん
09/08/20 09:46:43
clispとsbclはどっちもサポートされてなくてションボリしてるだけなんだ



450:デフォルトの名無しさん
09/08/20 10:09:27
>>442
commonlispの上でschemeを動かす
こんなのclerなら簡単だよね?

451:デフォルトの名無しさん
09/08/21 00:07:17
>>448
clozuer clが該当したけどXP64bit版でMeadowからslime経由で64bitのCCLを実行すると落ちるんだよね
32bit版のCCLは起動自体拒否されちゃうし
ちなみにThreadさえ使わないならSBCLは凄く使いやすいのだけど、hunchentootで遊ぼうとかするとモウダメポ


ACL店売りしてくんろ >> Franz


452:デフォルトの名無しさん
09/08/21 00:26:31
aclってクソ高かったような

453:デフォルトの名無しさん
09/08/21 16:23:08
aclダウンロード販売汁

454:デフォルトの名無しさん
09/08/21 17:52:20
+, -, incfみたいな既に定義されているオペレーターをオーバーライド
するのってどうやったらよいのでしょう.

vectorクラスを定義しておいて,+オペレーターの引数にvectorクラスが
渡されたら,自分が定義した処理を行うみたいな...

C++でいうoperatorみたなのをやりたいんですが...
教えてください

455:デフォルトの名無しさん
09/08/21 18:42:21
>>454
汎関数ならオーバーライド的なことはできるけど、
+はただの関数だから無理では。
C++と違って+はオペレーターじゃないぞ。


456:デフォルトの名無しさん
09/08/21 18:43:14
>>455
ちなみに汎関数(これって自分が定義する関数ってことですよね?)
どうするんでしょう??

457:デフォルトの名無しさん
09/08/21 19:18:39
> (これって自分が定義する関数ってことですよね?)
厳密には間違い。
ユーザ定義関数なら defun を使うが、
汎関数は defmethod を使って定義する。

汎関数のほうが汎用性が高く、引数の型によって
同じ名前の別の関数を定義可能。


> どうするんでしょう??

(defmethod funcname ((変数名 型名) 変数...)
本体)

みたいな感じ。

URLリンク(www.geocities.jp)

↑あたりが詳しいかな。

458:デフォルトの名無しさん
09/08/21 21:06:03
genericのことかよ
総称関数を普通汎関数なんて言わない

459:デフォルトの名無しさん
09/08/21 22:13:20
普通「汎関数」といえば“functional”の訳語だね。

460:デフォルトの名無しさん
09/08/21 23:19:25
すまん。用語を間違えた。総称関数のつもりだった。
汎関数てのは無いが汎変数てのがあるね。(defsetf)


461:デフォルトの名無しさん
09/08/22 09:53:44
増補改訂版が出るんですな。
URLリンク(www.bk1.jp)

462:デフォルトの名無しさん
09/08/22 10:24:30
>>461
なんでサイエンス社で出さないんだろう。
旧版、持ってるけどお布施で買うか。


因みに未だ読んでない。

463:デフォルトの名無しさん
09/08/22 12:24:33
>>462
旧版って20年も前の本ですよ。
随分と寝かしましたな~w

464:デフォルトの名無しさん
09/08/22 13:59:07
>>463
何年か前に古本屋で買ったんですよ。で、積読になってるんです。

465:デフォルトの名無しさん
09/08/27 20:53:45
汎関数は、単に関数オブジェクトを引数として取って、数値を返す作用のこと。

ところで、CLに確率過程を取り扱えるライブラリってある?

466:デフォルトの名無しさん
09/08/29 22:47:13
funcallってなんのでしょうか

lambda (f x) (funcall f x))
こんなのを定義したときの動きがよくわかりません


467:デフォルトの名無しさん
09/08/29 23:22:46
>>466
頭の括弧が抜けてるだけだよね?
それだと、
変数f と 変数x を引数に取って
変数xの値を引数にして
変数fに束縛されている関数を呼び出すlambda
になってる。

その例だと少しややこしいから、以下の関数と見比べて考えてみて欲しい。

(funcall '1+ 1)

(funcall (lambda (x y) (+ x y)) 1 2)

468:名無しさん@そうだ選挙に行こう
09/08/30 06:43:07
funcallはなんなのか?といわれれば関数適用applyの特殊形態だろ。

469:デフォルトの名無しさん
09/09/15 04:10:49
Lisp Scheme スレは既に墜ちた!残るは我らだけじゃ!


Snow LeopardにしたらSBCLが動かなくなってクマった。Maximaも使えないよ。(*・(エ)・*)

470:デフォルトの名無しさん
09/09/15 05:47:39
>>469
> Snow LeopardにしたらSBCLが動かなくなってクマった。Maximaも使えないよ。(*・(エ)・*)

clisp でやりゃいいじゃん。オレはしぶとく Tiger で Maxima 使ってるけど。

471:デフォルトの名無しさん
09/09/15 05:57:34
最新版の Sage だと ecl で Maxima を動かしてるみたい。昔は clisp 使ってたはずなんだけど。

472:デフォルトの名無しさん
09/09/15 08:59:53
>>466
Scheme出身ですかね?

473:デフォルトの名無しさん
09/09/15 10:40:46
>>469
cmucl とかあかんの?

474:デフォルトの名無しさん
09/09/15 13:12:08
Snow Leopard上のSBCLですが、とりあえずx86_64のバイナリなら動きますよ。
コンパイルするには若干修正が必要です。

475:デフォルトの名無しさん
09/09/15 17:11:18
clispでrequireがasdf:load-opに置き換わるマクロ書いたら不具合おきないのかな
sbclに慣れたので長いタイプが不便

476:デフォルトの名無しさん
09/09/15 20:03:57
>>469
Lisp Schemeスレはとうとうパンドラの箱を開けてしまった。
災厄なのか、キボウなのか。

477:デフォルトの名無しさん
09/09/15 23:23:05
そろそろID導入してアク禁することも検討しないといけなくなったな。
携帯の場合はアカロムになるから覚悟しとけよ。

478:デフォルトの名無しさん
09/09/15 23:34:14
コピペ乙

479:デフォルトの名無しさん
09/09/15 23:37:57
>>478
その態度も今の内だな。
世の中甘くないぜ。

480:デフォルトの名無しさん
09/09/15 23:45:39
甘いところはとことん甘いのが世の中。

481:デフォルトの名無しさん
09/09/15 23:57:31
>>479
勘違いしてるみたいだが、俺は荒らしている人間とは別だぞ。
下らないゴタゴタをこっちのスレまで持って来るなよ。

482:デフォルトの名無しさん
09/09/16 12:21:16
XreaにSBCL突っ込んでCGIやろうとしたらbashに制限かかってて断念

お金ケチると駄目だね

483:デフォルトの名無しさん
09/09/16 12:30:33
Gauche をクロスコンパイルして xrea に転送して使ってる。
SBCL も使えなくはないんじゃないかなぁ。 面倒だろうけど。

484:デフォルトの名無しさん
09/09/16 13:10:50
dreamhostでclispはコンパイルできた
clbuildも途中までは動いた

485:デフォルトの名無しさん
09/09/16 13:47:04
URLリンク(takogeek.rejec.net)

ここのpython実装はどれくらい使えるんだろう

486:デフォルトの名無しさん
09/09/16 17:48:07
windows上で動くlispboxでasdfとcffiが使いたいので
~/.clisprc.lisp

(load "FullPath\\asdf.lisp")
(push "C:\\usr\\share\\common-lisp\\systems" asdf:*central-registry*)
と書いて
C:\\usr\\share\\common-lisp\\systems
にcffi.asdのリンクを置いた

しかし
(asdf:operate 'asdf:load-op :cffi)
とすると

*** - MAKE-PATHNAME: Illegal :TYPE argumen
The following restarts are available:
ABORT :R1 Abort main loop

となってうまく動かない
参考にしたのは
URLリンク(mono.kmc.gr.jp)

487:デフォルトの名無しさん
09/09/19 16:33:36
上のコメントに感化されてさくらサーバを借りてみましたが、どうも上手くいかないです。

sshを繋いで、sbclをインストールするためにsh install.shをすると、
mkdir: /usr/local/share/info: Permission deniedと出るので、
install.shを開いて、変数:DEFAULT_INSTALL_ROOTを権限のある自分のディレクトリに変更、その後もういちどsh install.shとすると、

SBCL has been installed:
binary /home/[*ユーザ名]/bin/sbcl
core and contribs in /home/[*ユーザ名]/lib/sbcl/

と表示されたものの、テストcgiではサーバエラー(500)が出ました。

cgi内容:
#!/home/[*ユーザ名]/bin/sbcl
(format t "Content-Type: text/html~%~%")
(format t "<html><body>~%")
(format t "test~%")
(format t "</body></html>~%")

うーん、何か間違ってますかね?

488:デフォルトの名無しさん
09/09/19 16:45:14
>>487
そのCGIの名前は? シェルから起動して動く? 権限の設定は?
~% で CR+LF が出力されているか確認した?

489:デフォルトの名無しさん
09/09/19 17:01:39
>>488
ありがとうございます。
名前はtest.cgi、権限は755ですね。改行コードの確認はどうやるのでしょう?
また、シェルで./test.cgiと打ってみると妙なエラーが出ました。

fatal error encountered in SBCL pid 54717:
can't find core file at /usr/local/lib/sbcl//sbcl.core

何故そんなところを・・。
あと、ググっていると関係のありそうなものを見つけたので今試しています。
URLリンク(faroffsea.blogspot.com)
URLリンク(faroffsea.blogspot.com)
とりあえずインストールしたバージョンは1.0.23なので一行目の最後に--scriptを追加するも、駄目ですね。

490:デフォルトの名無しさん
09/09/19 17:35:45
>>489
改行コードは od に出力を渡して調べる

とりあえず、Apacheがshebangを見てスクリプト起動できるようにしないと
先には進めないと思う
なので % ./test.cgi が動くようになるまでファイト

# Action, SetHandler, ラッパースクリプトを使えばなんとかなるかもしれないけど
# そこまでしても労に見合わない気がする

491:デフォルトの名無しさん
09/09/19 17:43:56
windowsでお勧めのCommon Lisp処理系はclispでいいの?
asdf関係がおかしい気もするんだけど

492:デフォルトの名無しさん
09/09/19 19:09:17
WindowsでのおすすめはAllegroだけって言っても問題ないような気がする


493:デフォルトの名無しさん
09/09/19 20:03:58
>>489
ちょっと試してみたんだ
さくらインターネットのスタンダード FreeBSD 7.1-RELEASE-p6
sbcl-1.0.23-x86-freebsd

% cd sbcl-1.0.23-x86-freebsd
% setenv INSTALL_ROOT /home/USERNAME/sbcl
% sh install.sh
% cd ~/sbcl/bin
%./sbcl
fatal error encountered in SBCL pid *****:
can't find core file at /usr/local/lib/sbcl//sbcl.core

% setenv SBCL_HOME /home/USERNAME/mysbcl/lib/sbcl
% ./sbcl
This is SBCL 1.0.23, an implementation of ANSI Common Lisp.
[...]
BSD-style licenses. See the CREDITS and COPYING files in the
distribution for more information.
Bus Error
%

\(^o^)/


494:デフォルトの名無しさん
09/09/19 20:09:24
インストール先が/usr/local/*を想定されているから
sbclの起動引数
--core corefilename
を使って$HOME以下にインストールされているはずのcoreファイルの場所指定すればいいだけな気がするが?


495:デフォルトの名無しさん
09/09/19 20:11:01
と思ったらSBCL_HOME設定のうえBus Errorかよ
なんかMC68000を直にさわって落としてた頃を思い出したぜ


496:493
09/09/19 21:10:37
>>494
SBCL_HOME の代わりに --core を試してみたけど Bus Error
これ以上興味本位で引っ掻き回すのも悪いので成功者の報告を待ちます

497:デフォルトの名無しさん
09/09/19 21:21:18
>>496 uname -m の結果は?


498:493
09/09/19 22:11:00
>>497
%uname -p
i386

499:493
09/09/19 22:11:48
ああごめん・・・
% uname -m
i386

500:デフォルトの名無しさん
09/09/20 04:42:30
皆さんありがとうございます

いろいろ試したのですがBus errorですね
改行は問題ないようです
uname -mはi386と出ました

進展があればまた書きます

501:デフォルトの名無しさん
09/09/20 04:43:59
↑489です、すみません

502:デフォルトの名無しさん
09/09/20 08:50:34
xreaでやってみたけど同じエラーが出たよ

報告だけで助けにはなれないけど頑張って

503:デフォルトの名無しさん
09/09/20 11:50:59
>>492
LispWorksじゃ駄目なんか

504:デフォルトの名無しさん
09/09/20 12:26:39
>>503
せっかくIDEがあるのにマルチバイト文字(言語に関係なく)の扱いがぞんざいなので結局オペレーションにslime+emacsになっちゃう


505:デフォルトの名無しさん
09/09/20 18:18:40
URLリンク(code.google.com)
Lisp + SDLで遊んでみたくて↑の記述を真似てインストールしてみましたがうまくいきません。
(asdf:operate 'asdf:load-op :lispbuilder-sdl)実行時に↓のようなエラーが出ます。

; compiling file "G:\\Program Files\\Steel Bank Common Lisp\\1.0.29\\site\\lispbuilder-sdl\\cffi\\library.lisp" (written 02 SEP 2009 03:09:26 AM):
; compiling (IN-PACKAGE #:LISPBUILDER-SDL-CFFI); compilation aborted because of fatal error:
; READ failure in COMPILE-FILE:
; SB-INT:SIMPLE-READER-PACKAGE-ERROR at 485 (line 12, column 51) on #<SB-SYS:FD-STREAM for "file G:\\Program Files\\Steel Bank Common Lisp\\1.0.29\\site\\lispbuilder-sdl\\cffi\\library.lisp" {23FF98D1}>:
; package "SDL-BIN" not found

SDL-BINというパッケージはlispbuilder-0.9.8.tgzとwin32-lispbuilder-sdl-binaries-1.2.12.tgzには入っていないんですか?

環境はWindows XPとSteel Bank Common Lisp 1.0.29です。

506:デフォルトの名無しさん
09/09/20 19:27:53
Windowsでうまく行かなくて・・・というのを見るたびに、まずはWindowsを窓から投げ捨て
ましょうと教えたくなってしまうのだが。プログラミングをしたければまず*nixを入れるが吉。


507:デフォルトの名無しさん
09/09/20 23:11:32
必ずしもそうとは言えないけど、
CommonLisp はあまり windows で使うことを考えてなさそうな傾向はあると思う。

508:デフォルトの名無しさん
09/09/21 05:57:08
>>506
えーと、うまくいかない理由は「Windows環境であるから」なんですか?
それとも「Windows版固有の不具合」なんですか?
わからないのなら無理に返事くれなくてもいいんですよ。
一体何がしたいんですか?「自分はWindowsが嫌いである」という信仰の告白ですか?
私はCommon Lispを使いたいんであって、Linuxを使いたいのではありません。
Linuxは環境構築するのに無駄に時間がかかりすぎますし、日本語環境とエディタが
糞すぎるので絶対に使いたくありません。コーディングはWindowsとxyzyyで万全です。


509:489
09/09/21 06:44:35
489ですが、結局駄目でした。CLISPを入れることにします。

ついでに質問なのですが、LispをコンパイルせずCGIで動かす場合、
処理が遅くなるevalやdefmacroは避けた方が良いですか?

それとも皆さんコンパイルして使うのでしょうか。

510:デフォルトの名無しさん
09/09/21 06:49:54
>>508
お前が無知なだけね。
今時のlinuxはインスコと同時に日本語も見れるし、日本語も打てるようにできる。
エディタもemacsで世界最強。 てか、ある程度完成されたエディタはどのOSでも使えるから理由になってない。

自分の使ってるエディタのスペリングを間違えるような厨房にレスするべきではないかもしれんな。


511:デフォルトの名無しさん
09/09/21 07:16:40
>>510
>今時のlinuxはインスコと同時に日本語も見れるし、日本語も打てるようにできる。

>日本語環境とエディタが糞すぎるので

cannaとかいうimmは入れ直さないと使いものにならないよね

512:デフォルトの名無しさん
09/09/21 07:28:54
>>510
> >>508
> お前が無知なだけね。
> 今時のlinuxはインスコと同時に日本語も見れるし、日本語も打てるようにできる。
Windowsと同等以上の手軽さでできるとでも?
日本語環境を構築できる事が必ず保証されてるわけではなく、インストールする環境次第では
日本語を表示できないトラブルが多発しますよね。
余計な手間がかかる上にはるかに見劣りする環境しか無いのがLinuxじゃないですか。

> エディタもemacsで世界最強。 てか、ある程度完成されたエディタはどのOSでも使えるから理由になってない。
emacsは重すぎて話になりませんし、Linuxには買ってきてすぐに使えるWindowsPCほどの便利さがありません。
コーディングの道具とするにはWindows搭載のノートPCとxyzzyを使うのが最適です。

> 自分の使ってるエディタのスペリングを間違えるような厨房にレスするべきではないかもしれんな。
そんな些細な部分しか反撃出来る箇所が見つからなかったんですか?
くだらない人格攻撃をしなければならないような程度の低い人は黙っていて下さい。

513:506
09/09/21 07:35:29
>>508
*nixと書いたのがなぜLinuxに限定されたのかわからんが・・
xyzzy使ってるんなら無理にCL入れずにxyzzy lispで遊んでればいいだろ。


SBCL開発者から見たらWin XPなんて「二級市民が口答えすんなや(゚∀゚)アヒャヒャヒャヒャ」って感じでしょ。

514:デフォルトの名無しさん
09/09/21 07:50:32
>>512 晒し揚げ♪

515:デフォルトの名無しさん
09/09/21 07:52:37
>>513
> *nixと書いたのがなぜLinuxに限定されたのかわからんが・・
えっ?Linux以外に個人ユーザが使う上で現実的な選択肢が他にあるとでもいうんですか?

> xyzzy使ってるんなら無理にCL入れずにxyzzy lispで遊んでればいいだろ。
えっ?LispとSDLを使って遊びたいだけなのに、xyzzyでSDLを使えるようにするところから
自力で書くんですか?そんな非効率的で馬鹿馬鹿しい事なんてしたくありません。

> SBCL開発者から見たらWin XPなんて「二級市民が口答えすんなや(゚∀゚)アヒャヒャヒャヒャ」って感じでしょ。
あー、やっぱり貴方はその程度の人なんですね。煽りたいだけなら黙っててください。

516:506
09/09/21 08:23:02
>>515
Windowsの汚濁から永らく離れてるスノッブで悪いが、そのlibrary.lispのコメントアウトされてるところ
を非コメント化してその下の今ある#+windows部分を代わりにコメントアウトしたらどうなるんだ?


517:デフォルトの名無しさん
09/09/21 08:39:27
>>514
www ワロタ。
>>512は、知能が低いのに「自分の主張 = 真理」
だと頑固に信じきっているようなリアル馬鹿。
他人にとっては、>>512は偏った主観でしかないのにな。
こういった人間は死んでほしいよ。

518:デフォルトの名無しさん
09/09/21 08:59:11
nautilusも糞

519:デフォルトの名無しさん
09/09/21 09:05:07
>>512
asdf-installを動かすだけでめちゃくちゃめんどくさい
そんなんだったらvmware上の*nixの方がはるかに簡単

最終的にslimeに落ち着く結果になるのにxyzzyにこだわるのがワケワカメ


520:デフォルトの名無しさん
09/09/21 09:06:34
関数型言語スレで有名らしいキチガイがLisperを問い詰めたいといってたが、あいつかなぁ
まぁ誰であれ礼儀をわきまえた初心者には親切にすべきだが、おかしな奴はスルーするのがいいぞ

521:506
09/09/21 09:10:44
ドッカン
          ドッカン
                  ☆ゴガギーン
        .______
.        |    |    |
     ∩∩  |     |    |  ∩∩
     | | | |  |    |    |  | | | |  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    (  ,,)  |     |    | (・x・ )<オラ!人が教えてやってんだから出てこい>>515!!
   /  つ━"....ロ|ロ   . | l   |U \___________
 ~(  /   |    |    |⊂_ |~
   し'∪  └─┴─┘  ∪


522:デフォルトの名無しさん
09/09/21 10:43:24
Linuxはサーバとしては良いけれどデスクトップ環境としてはWindowsに大きく
見劣りしているのは確かでしょう。
LinuxをデスクットップOSとして使用している人は少ないし、
Lispを使っている人は更に少ない。
使用者の裾野を広げなければ将来はありませんな~

523:デフォルトの名無しさん
09/09/21 10:46:38
Mac全盛だったころに
DOS+Windowsに対して
同じことを言っている人がいたね

524:デフォルトの名無しさん
09/09/21 10:54:22
マク全盛と言ってもシェアは10%以下
Linuxは更にそれ以下

525:デフォルトの名無しさん
09/09/21 11:01:51
>>522
Lisp は別に広まって欲しいようなものではない。

526:デフォルトの名無しさん
09/09/21 11:05:19
>>522
CommonLisp をデスクトップマシンで使う意義がそれほど無い。
単に適材適所。

527:デフォルトの名無しさん
09/09/21 11:08:53
>>526
Windowsからtelnetか何かでLinuxに繋いでLispやってんの?

528:デフォルトの名無しさん
09/09/21 11:09:41
Clozure Common Lisp とか ECL とかは Windows でも不都合なく動くよね。
ところで Clozure って clojure と混同しやすくね?

529:デフォルトの名無しさん
09/09/21 11:10:17
漏れ明日からVMWareでXPにLinux突っ込んでLisp勉強するんだ
おまいらやさしくしてね

530:デフォルトの名無しさん
09/09/21 11:11:54
つか、windowsでclコード書いて、動かしてみても、その後どうすんの?
windowsでclサーバー立ち上げるなんて、実用的じゃないし、
単なる時間の無駄じゃね?
windows上でcl書くなんて、授業の宿題以外で何か使い道あんの?

531:デフォルトの名無しさん
09/09/21 12:40:24
>>522
>使用者の裾野を広げなければ将来はありませんな~

2番目に古いコンピュータ言語に対して面白いことをおっしゃいますな~
これだけ長きに渡って活発に処理系が開発されている言語もそう無いですぜ

532:デフォルトの名無しさん
09/09/21 12:40:39
clサーバって何ですか?

533:デフォルトの名無しさん
09/09/21 12:48:04
>>531
それは処理系が開発しやすいのとgccのような決定打が無いからじゃなかろうか?

534:デフォルトの名無しさん
09/09/21 12:53:02
>>515
>> *nixと書いたのがなぜLinuxに限定されたのかわからんが・・
>えっ?Linux以外に個人ユーザが使う上で現実的な選択肢が他にあるとでもいうんですか?

Mac OS X 良いよ。Lisp やる環境としてはかなり恵まれてるし、
デスクトップとしても使い易い。宗教的理由で Mac が使えない
とかじゃなければお薦めです。UNIX としても十分使える。

もちろん Linux でも良いけど、正直 Windows はお勧めしません。
使ってる人が少ないから。

535:デフォルトの名無しさん
09/09/21 12:55:19
>>533
gcc が決定打だとは思えないんだが…
最近ずいぶん賢くなったけど, 昔の gcc の最適化のおばかさかげんときたら………


536:デフォルトの名無しさん
09/09/21 13:23:05
決定打があってはいけない。
多様性が Lisp らしさの根源。

537:デフォルトの名無しさん
09/09/21 13:30:11
フリーの処理系だと一時期 CMUCL が決定打だったんじゃないのかな
その時代はよく知らないけど、何となくそういうイメージがある

538:デフォルトの名無しさん
09/09/21 14:03:37
Cygwinでも導入したらええがな。重いから俺は使いたくないけど。

539:デフォルトの名無しさん
09/09/21 14:12:36
>>536
Common Lispを否定するのか?

540:デフォルトの名無しさん
09/09/21 15:10:04
>>539
「標準的なものも必要だけど, もっと多様なものがあってもええんちゃう」
って言ってるんちゃうの?


541:536
09/09/21 15:27:15
>>539
実装も含めての話。 >>533 は GCC を例に挙げているけど、「C++99を否定するのか?」なんて言ったらナンセンスだろう?
それと同じ。

542:デフォルトの名無しさん
09/09/21 23:46:36
>>516
はい、今さっき帰宅しましたよ。昼間は我慢して下さいね。暇じゃないので。
で、それを試したらコンパイルは通りましたね。
かわりに↓なエラーが出るようになりましたが。

debugger invoked on a SB-KERNEL:SIMPLE-PACKAGE-ERROR:
no symbol named "*DEFAULT-FPSMANAGER*" in "LISPBUILDER-SDL-BASE"

結局Windows版の方にはsdl-binなんて入ってないって事なんですか?

>>519
別に業務に使いたいとか、どっぷり漬かってそれだけ使いたいとかじゃないですから。
ちょっと遊んでみるだけなのにOSから入れるなんて面倒な事したくないですよ。

>>534
すいません、宗教上の理由によりMacは使えません。改行コードとかおかしいし。
日本語環境がおかしくてOSごとすぐ落ちるという印象がまだぬぐえないので。
PowerXCell 8iが載ったMacとかが出たら考えちゃいますが。


543:デフォルトの名無しさん
09/09/22 00:00:54
かまってちゃんのキチガイはスルーでお願いします。

544:デフォルトの名無しさん
09/09/22 00:27:46
失敗してるからリコンパイルでもすればいいんですかね?


545:デフォルトの名無しさん
09/09/22 00:31:42
>>543
えーと、AAを貼りだしたからといって、>>506をかまってちゃんのキチガイ扱いするのは可哀相すぎじゃないですか?
個人的には>>520あたりの脳内仮想敵について語り始めたり、罵倒しはじめる人の方がどうかと思いますよ。


546:デフォルトの名無しさん
09/09/22 00:55:53
今のところ可哀相じゃない

547:デフォルトの名無しさん
09/09/22 01:47:56
>>542
煽りっぽいけどマジレス

asdf-installが使えないと何かが足りないときに本当にめんどくさい。
どうしてもWindows上でチョロくCommonLispで遊びたいならUnix系のVM作るか
学習版のLispworksを入れてからStarter packで遊ぶ以外どうしようもない

なお学習版のLispworksでSDLなんかで遊ぶとあっという間にconsセル上限に達して再起動だから
結局製品版を買わないと遊べないぞ


548:デフォルトの名無しさん
09/09/22 02:44:06
あー、なるほど?
506の人がいった*nixの方がいいというのはそういう事なんですか?
わかりました。そういう事ならVMにLinux入れて試してみます。

549:デフォルトの名無しさん
09/09/22 02:51:53
Lisp を触りたいなら、Windows 信仰を捨てれば色々と楽になるよ。

550:506
09/09/22 03:48:50
>>542
どうしてもsdl-bin使いたきゃcffi/package.lispで
(:documentation ...)
#+windows(:import-from #:sdl-bin *dll-path*)
(:export ...)
とか突っ込んでおけば通るだろう。
no symbol named "*DEFAULT-FPSMANAGER*" in "LISPBUILDER-SDL-BASE" は、タイミング悪く
URLリンク(code.google.com)
にでも引っ掛けちゃったんじゃねーの。svn先端にすれば通るはず。



・・・ていうか、lispbuilder-sdl のレポジトリ見ても、「DOSの改行コード直す」とかいうリビジョンが
いくつかあったり、おれがマカーかもしれないことについて何か言い残したいことはあるか?

551:デフォルトの名無しさん
09/09/22 05:49:46
>>542

> >>534
> すいません、宗教上の理由によりMacは使えません。改行コードとかおかしいし。

物知らずなので教えて欲しいのだが、正しい改行コードというのがあるのだろうか?
ここだけ読むと途方も無い莫迦にしか見えない。Winsdows の改行コードだけが正し
いのです、というのなら *nix も使えないと思うのだけど。なるほど確かに宗教的な
理由だね。


> 日本語環境がおかしくてOSごとすぐ落ちるという印象がまだぬぐえないので。
> PowerXCell 8iが載ったMacとかが出たら考えちゃいますが。

OS ごとおかしくて、直ぐに青い画面になったり、一般保護違反を出すという印象が
まだ拭えな(ry


552:デフォルトの名無しさん
09/09/22 06:33:40
正しいのはCR+LF
なぜかというと
タイプライタのCRが行頭でLFが改行だから
Macの様にCRのみだと同じ行に重ねてタイプされる
*NIXの様にLFのみだと
                下の行に移動はするが
                                   行頭にはいかない

553:デフォルトの名無しさん
09/09/22 06:58:47
そんなことを言い出したら
backspaceでカーソル前の文字が消える
delete(rubout)でカーソル位置の文字が消える
(カーソルはブロックカーソルを想定)
ってのも、おかしいわけだが


554:デフォルトの名無しさん
09/09/22 07:06:48
>>550
ご親切にどうも。マカ―かどうかについては、口にするほどの事は別に何も。

>>552
通信分野、特にインターネットプロトコルの多くはWindows(というかDEC)の改行コード
である CR + LFが正統とみなされてますね。
*nixのLFのみは対応している場合もありますが、旧MacのCRのみは論外ですね。
調べてみたらMacはOS Xで一応まともなOSになったんですね。

あと、宗教的理由とは言いましたが、使ってる人が圧倒的に多いWindows環境になるべく
合わせたいんですよね。Macみたいに人が少なすぎて誰にも遊んでもらえないとか悲しいですし。
まあ、Common Lispを選んだ時点であんまり関係なさそうですけど。

555:デフォルトの名無しさん
09/09/22 07:11:06
それは機械式のタイプライターじゃなくてテレタイプのことだし、そんなこと言い出したら長い行のときは
その分いっぱいCR並べないといけないことになるわな。機械式はレバーでがちゃーんとやると行送りと
同時にヘッドも行頭に戻るようになっていた。

556:デフォルトの名無しさん
09/09/22 07:12:36
>>555>>552宛ね。

557:デフォルトの名無しさん
09/09/22 07:27:52
>>554

> 調べてみたらMacはOS Xで一応まともなOSになったんですね。

Windows はいつになったらまともなOSになるんですか?


cp932 以外の文字コードは認めない。UTF-8 なんて論外だ。
EUC-JP は存在自体が許せない。

とか言い出しそうな人にしか見えない。


改行コードってそもそも低速通信の頃の名残じゃなかったっけ?
そんな話を何処かで聞いたのだけど、何処だったか忘れた。だか
ら正しさとかいう話ではないと思うが、どうなんだろう。


私は使えれば良いや、くらいにしか思ってないから拘りがあんま
りないな。だから Java には驚いた。

558:デフォルトの名無しさん
09/09/22 07:50:41
もし宜しければどなたか>>509をお願いしますm(_ _)m

あと、String型としてHTMLタグを書くときに、バックスラッシュを使わずにダブルクオーテーションをそのまま書ける方法はありますか?

559:デフォルトの名無しさん
09/09/22 08:02:41
まさか未だに Mac が PowerPC だと思ってるわけ無いよな。改行コードは知らなかった
みたいだけど、Mac OS X が元々 NextStep だって事くらいきっと知ってるんだよな。
この分野で Windows を使ってる人が圧倒的に少ない事にはそろそろ気付いてるだろうし、
SBCL の公式バイナリが Mac 版だけが最新バージョンな事は当然知ってる事だよな。
その上で自分の宗教と現実のどっちが大事かくらいは分かるよな。

560:デフォルトの名無しさん
09/09/22 08:15:57
>>557
> 改行コードってそもそも低速通信の頃の名残じゃなかったっけ?
そだよ。50baud 位の通信レートで直接リレーを叩くって時代の名残


561:デフォルトの名無しさん
09/09/22 09:24:48
>>558
ほとんどのCL処理系は読み込んだ時点でコンパイルまでしてしまうと思うが・・。(評価時に未束縛
シンボルや不正データ型でエラーが出るのはまた別の話)evalはともかくマクロ自体はパフォーマンスに
関係ないはずだし、ふつうボトルネックはCGI本体以外のところにある。

エスケープせずにダブルクオート使いたかったら自分でリーダマクロ書くしかアルマジロ。

562:デフォルトの名無しさん
09/09/22 09:48:18
>>554
>>Macみたいに人が少なすぎて誰にも遊んでもらえないとか悲しいですし。
今ならMac=Unixなんだから、プログラム勉強するならMacの方が圧倒的に楽だけどなぁ。
技術系のセミナーとか行ってみるといい。Macのノートがやたら多いよ。

563:デフォルトの名無しさん
09/09/22 10:53:27
>>551
> OS ごとおかしくて、直ぐに青い画面になったり、一般保護違反を出すという印象が
> まだ拭えな(ry

へぇ、今りぬくすユーザはそんなことが書けるんだ。
なんでりぬくすにコントロール+おると+デリートキーコマンドがあったのか知らないのかな。
いや、みゅーる終わらせるのに再起動していたインスト厨だけど(泣


564:デフォルトの名無しさん
09/09/22 12:02:45
>いや、みゅーる終わらせるのに再起動していたインスト厨だけど(泣
ものすげぇ自爆じゃねぇか!


565:デフォルトの名無しさん
09/09/22 20:56:15
>>559
むしろPowerPCアーキテクチャでなくなった事で、完全に選択肢に入らなくなりましたね。
Mac OSを使う気は全く無いですし、Windowsが動くとはいっても、Macにこだわるべき理由
が全くありませんから。素直に低価格のWindows PCを選びますよ。2~3万円で必要な
機能は全て揃いますからね。

> SBCL の公式バイナリが Mac 版だけが最新バージョンな事は当然知ってる事だよな。
これは知りませんでしたね。まさかSBCL自体が地雷だったとは思ってもみませんでした。


566:デフォルトの名無しさん
09/09/22 21:11:38
>まさかSBCL自体が地雷だったとは

こういう事を平気で言えてしまうのは一体どういう人なんだろうな…
他人事とはいえ、悲しくなるわ

567:デフォルトの名無しさん
09/09/22 21:25:23
>>561
ありがとうございます。

スレ荒れてますね・・。

568:デフォルトの名無しさん
09/09/22 21:26:57
相手しないほうがいいって意見が正しかったな

569:デフォルトの名無しさん
09/09/22 21:52:25
URLリンク(jp.techcrunch.com)

Common Lispなら何とかしてくれる

570:デフォルトの名無しさん
09/09/22 21:54:25
宗教って怖いね


571:デフォルトの名無しさん
09/09/22 22:02:13
>>566
> こういう事を平気で言えてしまうのは一体どういう人なんだろうな…

一神教の人。

572:デフォルトの名無しさん
09/09/22 22:21:28
>>569
MIT の学生なら、その問題を解かなくても Google には入れそうな気が、、、
でもこういうのは楽しくて良いね

573:デフォルトの名無しさん
09/09/22 22:43:56
(defun test (str)
(setf lst '())
(loop for i from 0 upto 3
do (setf (char str i) #\a)
(push str lst))
(format t "~A ~A ~A ~A~%" (car lst) (cadr lst) (caddr lst) (cadddr lst)))

(test "test")

* aaaa aaaa aaaa aaaa
NIL

何故だ

574:デフォルトの名無しさん
09/09/22 22:48:46
>>566

どんな状況でも自分を正当化できる人間って、ある意味羨ましいよな

575:デフォルトの名無しさん
09/09/22 22:53:20
やりたい事はこれでいいのかな?
(defun test (str)
(format t "~{~A~^ ~}~%"
(loop
for i from 0 upto 3
for s = (copy-seq str)
do (setf (char s i) #\a)
collect s)))

* (test "test")
aest tast teat tesa
NIL

576:デフォルトの名無しさん
09/09/22 22:55:28
一つしかない文字列 str を破壊的に更新しているから。
i:0 str => "aest", lst => ("aest")
i:1 str => "aast", lst => ("aast" "aast")
i:2 str => "aaat", lst => ("aaat" "aaat" "aaat")
i:3 str => "aaaa", lst => ("aaaa" "aaaa" "aaaa" "aaaa")
どうなって欲しいのかがよくわからんが、push時にコピーしときたいならこうかな。
(defun test (str)
(let ((lst nil))
(loop for i from 0 upto 3
do (setf (char str i) #\a)
(push (copy-seq str) lst))
(format t "~A ~A ~A ~A~%" (car lst) (cadr lst) (caddr lst) (cadddr lst))))

577:デフォルトの名無しさん
09/09/22 22:57:26
今気付いたけどtoじゃなくてuptoなんてあるんだ。
なんか違いあったりするの?

578:デフォルトの名無しさん
09/09/22 23:10:34
数値ベースの for における incremental stepping / decremental stepping の指定につかう。
toとuptoで違いがあるというより組合せだね。byでの増分値指定は正の数のみなので、
from .. to .. [by N] => inc
from .. upto .. [by N] => inc
downfrom .. to .. [by N] => dec
from .. downto .. [by N] => dec
となる。below/aboveとかもあるけど。詳細は CLHS 6.1.2.1.1 The for-as-arithmetic subclause 参照。

579:デフォルトの名無しさん
09/09/22 23:15:47
>>575-576
お、ありがとう
charを使ったら思うようにならなくなって困った

580:デフォルトの名無しさん
09/09/22 23:37:17
>>566
だってシェア10%未満の環境のみを基準にして、他は対応が大幅に遅れるんでしょう?
なら、地雷そのものじゃないですか。GCLにでも乗り換えますよ。

>>571
つまりMac信者の事ですね。


581:デフォルトの名無しさん
09/09/22 23:43:22
やっぱりソースコードが書いてあるとスレがマッタリするな~

582:デフォルトの名無しさん
09/09/22 23:49:23
>>580
シェアが大きいってことは「正しい」ってことでも「優れている」ってことでもないんだ。
ある条件にはよりよくマッチするってことはあるかもしれんがね。

583:デフォルトの名無しさん
09/09/23 00:06:52
>>582
その話題を続けたいなら別スレに行こうな。
君が相手を続ける限り終わらないぜ。論理で信仰に挑んでも仕方が無いさ。

584:デフォルトの名無しさん
09/09/23 01:28:36
まじキチ…ユダヤが人工地震を起こすぞ

【緊急情報カクサンよろしく】

ついに来ました。

大きい動きです。250nT超えてきました。ほぼ間違いありません。もう一度言います。

友人、知人、親類縁者、あらゆるつながりを駆使して巨大地震がくることを教えて下さい。

四川地震より大きいのが来る可能性があります。
URLリンク(g)<)★253494015/
【大気イオン】e-PISCO Part11【また延長】
スレリンク(eq板)★252991726/

本当に地震が来たら、犯人は特権階級全員だということ2


585:デフォルトの名無しさん
09/09/23 04:56:01
>>580
SBCL は *nix 上で動作するものとして開発が始まっていてだなぁ,
Windows 上での動作なんてのは想定外だったんだよ。
# Mac も OS X は, ユーザーランドは立派な *nix だしな………

そうゆう意味では地雷だったわけだ。
# ぶつぶつ文句言うくらいだったら SBCL Windows 版の開発に参加すればいいのに
# 何のためのオープンソースなんだか………


586:デフォルトの名無しさん
09/09/23 05:16:22
なぜかやたらSDLにご執心のようだからおおかたHSP畑の人なんじゃね・・と書こうとしたら

    |
  \ _ /
 _ (m) _
    目   ピコーン
  / `′ \
   ∧∧
   (・∀・)
  ノ( )ヽ
   < >

HSP <-> I_ISP <-> LISP 俺って天才?

587:デフォルトの名無しさん
09/09/23 10:58:03
>>586
天才。

588:デフォルトの名無しさん
09/09/23 13:08:59
>>586
      _人人人人人人人人人人人人人人人_
        >      な、なんだってー!!    <
        ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
   ∩___∩              ∩____∩
   | ノ     u ヽ            / u     u └|  ∩____∩
  / # ●   ● |           | ●   ● # .ヽ/  u    └|
  | u   ( _●_)  ミ          彡   (_●_ ) u  |●   ● # ヽ
 彡、   |∪|  、`\        /     |∪|    彡  (_●_) u   |
/ __  ヽノ /´>  )       (  く   ヽ ノ   / u   |∪|    ミ
(___)   / (_/        \_ )      (  く   ヽ ノ     ヽ


589:デフォルトの名無しさん
09/09/23 13:14:10
>>586
お前天才だな

590:デフォルトの名無しさん
09/09/23 17:49:43
#'って紛らわしくない?
quoteっぽく見えるけど、やってることはquote剥がしに近い


591:デフォルトの名無しさん
09/09/23 18:42:50
>>590
俺も、似たようなこと思ってた。

時々、#'がquote の関数版とか言う表現を見かけたんだけど、
「やってることの向きが逆じゃね。」
と、思ってたよ。

ただ、だまってたけど。


592:デフォルトの名無しさん
09/09/23 19:13:29
>>590
見た目のはなし?気に入らないなら function でもどーぞ。
>>591
それって見た目の話じゃなくて意味の説明だった?
俺には向きというか全然別物に見えるけど。

593:デフォルトの名無しさん
09/09/23 19:42:15
シンボルから関数実体をデリファレンスするんだから、確かにquoteのように
ラップするのとは逆といえば逆かな。

lambdaに対する#'は微妙だけど。

594:デフォルトの名無しさん
09/09/23 21:22:02
>>590
quote と function は元々同じ意味で、
function を使うのは処理系に与えるヒントでしかなかった。
emacs lisp では今でもそう。

Common Lisp では (たぶん lexical closure のせいで)
quote と function は違うものになった。

595:デフォルトの名無しさん
09/09/23 21:23:14
ANSI Common Lispのlambda式は謎すぐる。

全体として関数名とみなされ、#'で対応する関数が得られ、
それとは別にlambdaマクロで関数が得られる?

もうschemeに帰りたい…


596:デフォルトの名無しさん
09/09/23 21:46:35
あんまり関係ないオペレータ間に関係を見出すのはどうかと思うなぁ。
(QUOTE object) => オブジェクトそのものを返す
(FUNCTION name) => カレントレキシカル環境の指定された名前の関数を返す。みつかんなかったらグローバル環境から探す。
だろ?>>593のいうようなデリファレンスはSYMBOL-FUNCTIONを想像するなぁ。

597:デフォルトの名無しさん
09/09/23 21:49:02
590です。

>>594
ありがとう。
"lisp quote function"でぐぐって、関係ありそうな日本語の文書として

URLリンク(www.ice.nuie.nagoya-u.ac.jp)
URLリンク(www.ice.nuie.nagoya-u.ac.jp)
URLリンク(tips.lisp-users.org)

がひっかかった。これから読む。


598:デフォルトの名無しさん
09/09/23 21:54:46
>>595
俺もお前が謎すぐるので、もうSchemeに帰ってほしい…

599:デフォルトの名無しさん
09/09/24 01:12:53
普通のやつらの上を行け
URLリンク(www.youtube.com)

600:デフォルトの名無しさん
09/09/24 09:25:01
>>594
その辺はemacs lispの方がわかり易いな。
ただemacs lispはCLの人の為に #' は残してくれてるよね。
中では多分同等にあつかってるとおもう。

(defun foo (fn) (funcall fn))
=> foo
(foo '(lambda nil 1))
=> 1 (#o1, #x1)
(foo (lambda nil 1))
=> 1 (#o1, #x1)
(foo #'(lambda nil 1))
=> 1 (#o1, #x1)
(foo (function (lambda nil 1)))
=> 1 (#o1, #x1)

#'1
=> 1 (#o1, #x1)

601:デフォルトの名無しさん
09/09/24 10:15:30
> #'1
> => 1 (#o1, #x1)

こいつはくせえ。ゲロ以下のにおいがプンプンするぜ。

CLでもlambdaマクロからは同じようなにおいがするけどね。


602:デフォルトの名無しさん
09/09/24 10:21:50
>>601
> こいつはくせえ。ゲロ以下のにおいがプンプンするぜ。

ちゃんと>>600を読めよ。 emacs lisp では
' == #'
なんだよ。

603:デフォルトの名無しさん
09/09/24 12:39:45
> (defun foo (f) f)
FOO
> (defun fuga () (format t "test"))
FUGA
> (foo (fuga))
test
NIL

これって問題ないんですか?
funcallやapplyは不要??

604:デフォルトの名無しさん
09/09/24 12:56:46
(foo (fuga))と(foo fuga)を混同してない?

605:デフォルトの名無しさん
09/09/24 13:01:03
>>604
すみません、どう違うんです??

606:デフォルトの名無しさん
09/09/24 14:27:54
((lambda (x) x) (format t "test"))

607:デフォルトの名無しさん
09/09/24 14:34:39
どう違うかって、試してみればいいでしょ

608:デフォルトの名無しさん
09/09/24 14:58:15
> (foo fuga)

*** - SYSTEM::READ-EVAL-PRINT: variable FUGA has no value

変数の名前空間と関数の名前空間が違うということですね。
ということは(foo (fuga))ではfugaは代入されて実行されたわけではない?
引数にした関数をなかで実行したい場合はどうすればいいんですか??

609:デフォルトの名無しさん
09/09/24 15:07:04
>>608
何を言ってるんだお前は

610:デフォルトの名無しさん
09/09/24 15:10:06
ごめんなさい…

611:デフォルトの名無しさん
09/09/24 15:33:59
>>608
各 symbol には関数以外の値と関数の値(ポインターかコードオブジェクト)を
保持するスロットがある。名前空間が違うわけではない。


612:デフォルトの名無しさん
09/09/24 15:53:02
>>608
呼び出し元で function(#')またはquote(')、
呼び出し先でapplyまたはfuncallを使う。

>>611
> 各 symbol には関数以外の値と関数の値(ポインターかコードオブジェクト)を
> 保持するスロットがある。
それが名前空間が違うということなんじゃないの?


613:デフォルトの名無しさん
09/09/24 16:10:27
>>505
ここの方法を改変したらいけた

URLリンク(mono.kmc.gr.jp)
私は
Program Files
じゃなくて
c:\sbclに入れた

614:デフォルトの名無しさん
09/09/24 16:28:31
> 呼び出し元で function(#')またはquote(')、

たいていはどっちでもいいのだが
前者は関数定義そのもの、後者は関数名による呼び出しなので
別のものが呼び出される場合がある

615:デフォルトの名無しさん
09/09/24 16:38:35
> (defun fuga () (format t "test"))
fuga

> (setq fuga1 #'fuga fuga2 'fuga)
fuga

> (funcall fuga1)
test
nil

> (funcall fuga2)
test
nil

> (defun fuga () (format nil "test"))
fuga

> (funcall fuga1)
test
nil

> (funcall fuga2)
"test"



616:デフォルトの名無しさん
09/09/24 17:24:11
windowsで.sbclrcってファイル作れないよね
dot.sbclrcとかで代用できないの?

617:デフォルトの名無しさん
09/09/24 17:36:37
%HOME% 設定してるうちの環境ではふつーに読んでくれるみたい
;;; SBCL 1.0.29 on win2003


618:デフォルトの名無しさん
09/09/24 19:41:52
>>616
コマンドラインからつくれなかったっけ?

619:デフォルトの名無しさん
09/09/24 20:00:00
>>618 nt-emacs あたりで普通に作れなかったけ?


620:デフォルトの名無しさん
09/09/24 20:42:09
>>616
適当なファイル名で作ってから ren コマンドでリネームが常套手段

621:デフォルトの名無しさん
09/09/25 19:40:22
(human nanasino gonbe
 ((00-0000-0000 keitai)
  (11-1111-1111 ie))
(("toukyouto chiyodaku nagatacho 1-1-1" jitaku)))
みたいなデータ構造を扱いたいと思っています
これってプロパティリストでは扱えないと思うんですが
アクセッサやフォーマットチェッカなんかを作ってくれるライブラリとかご存じないでしょうか

622:デフォルトの名無しさん
09/09/25 21:18:17
ちょっと良くわからないな。
> これってプロパティリストでは扱えないと思うんですが
内容によっちゃぁ、
(:type human :name (nanasino gonbe) :keitai 00-0000-0000 :ie 11-1111-1111 :jitaku "toukyouto ...")
とう形式で覚えて、入出力時に任意の表現でもいいんじゃないか。
> アクセッサやフォーマットチェッカなんかを作ってくれるライブラリとかご存じないでしょうか
どんなアクセサが欲しいのか?フォーマットチェッカはどんなデータをどうエラーにしたいの?


623:デフォルトの名無しさん
09/09/26 02:45:46
sbclよりECLの方が速いんだろうか

624:デフォルトの名無しさん
09/09/26 09:09:21
どうしてそう思ったのかスゲー気になるけど基本的にsbclの方が圧倒的に速いよ。

625:デフォルトの名無しさん
09/09/27 19:36:46
kwsk

626:デフォルトの名無しさん
09/09/29 20:49:56
天才が居ると聞いてやってきました

627:デフォルトの名無しさん
09/09/29 21:29:38
>>626
どこで聞いたの?

628:デフォルトの名無しさん
09/09/29 23:35:13
天気予報を見ていると「満潮」「干潮」の時刻まで画面に表示している。
干潮 (かんちょう) というと当然ながら浣腸を連想するわけだ。
肛門にぶっ挿して中に出すあれだ。
では満潮 (まんちょう) というと、もちろん差し込む場所は…


629:デフォルトの名無しさん
09/09/29 23:36:34
誤爆しました。 すまんこってす。


630:デフォルトの名無しさん
09/09/30 10:27:37
天才が居ると聞いてやってきました

631:デフォルトの名無しさん
09/09/30 10:52:14
URLリンク(find.2ch.net)

632:デフォルトの名無しさん
09/09/30 10:56:53
>629
Lisperは変態の集まりだと思われかねないので
そのような誤爆には気を付けてくれた給へw。

633:デフォルトの名無しさん
09/09/30 10:59:46
>>632
> Lisperは変態の集まりだと思われかねないので

え、違うの?

634:デフォルトの名無しさん
09/09/30 11:00:12
マルチコピペ

635:デフォルトの名無しさん
09/09/30 11:02:16
ここまでテンプレってところですか

636:デフォルトの名無しさん
09/09/30 15:51:52
                _, -―‐―- 、
               /斗─= 、―-、\
              /'´>‐‐─-\  ヽ`ニヽ
             ////   l     ヽ  ∨ヽ\
           __〃 l   |     {  ヽ    |    V-、/
         く // │l ト、ノ   ヽ  \‐-!  |  トく \
        //| l l |l┼匕_\|\ \ {_\|  j  l{ ヽ/}
        </レV|ヽ小 ヾ氿心  \l〃⌒|   八ーⅣ
         // /| \ヽハ弋ヒ}   ,  ::::::│/ / 从リ
          / /|__l |  rfV \ :::  t=ー ァ  // / `>、_       すまんコ!
         ∨ {ヘハヽト:!ハ\.> _`ー_,.イl/∨l / /\-、___
.             ヽ从| | lヘn\ゝト、 7  :|八 '/  /   ノ`'|lllレ│
                  | l人j {ヽミ :|二ニ二|  / /       |l斗' |\
                  { ヽ `}\ ∨ ,'  j '/    ォ<__/__ヽ、j _}
                /ム , /}小\∨ r//     / )><_|寸|/ /
            /_|l`三彡ハ \∨l/       //「「|    ̄ _/
           {/ \二イ  `ーォ≧≦二ニ ≠  \>‐‐=彡'
           |     /   / / / ハヽ  │   `rー‐'´
           l     /    人く/イ|  L_>、    /ヘ
            `ー‐'´   /   '/ | !   \ヽj/ / /^ヽ
                r‐'´    ,' /j j    ヽト、   /  ノ\_
               }    / ///      ∧ヽ      /
                ヽ.   / /く/     │l\_>     /
                \_/ l          │l      /
                  |`ヽ{_        ノ {   __/
                  |   `ー┬┬-、(厂'ー'´/
                  |     ,' /       /



637:デフォルトの名無しさん
09/10/01 20:36:31
araneidaってどう?
hunchanroot使う人多いみたいだけど

638:デフォルトの名無しさん
09/10/04 01:05:34
clbuildが/home/myname/.sbcl/
以下にいろいろインストールしちゃうんだけど
/usr/share/common-lisp/
以下に変更する方法ないものだろうか

639:デフォルトの名無しさん
09/10/04 02:32:41
>>569

いまさらだし、ネタばれ読んでから作ったものですが、、、

(defun make-decode-hash (key-list)
  (let ((d-hash (make-hash-table :size 47))
        (bs-list (coerce "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" 'list)))
    (dolist (x (append key-list bs-list) d-hash)
      (or (gethash x d-hash)
          (setf (gethash x d-hash) (pop bs-list))))))

(defun decode-google (key quest)
  (let ((dec-hash (make-decode-hash (coerce (nstring-upcase key) 'list))))
    (format t "~{~a~}~%" (mapcar #'(lambda (x) (gethash x dec-hash))
                                 (coerce (nstring-upcase quest) 'list)))))

(decode-google "jobs" "8MLDQ6TUI6TFMLRHAANRA6Q8EFLDMQ86II2O32S5J13JXOJ")

この問題に関してなら、コンパイルなしでハッシュが使える言語なら、
何でも向いているといえそうな気がします。


640:デフォルトの名無しさん
09/10/04 09:55:07
Lispのハッシュってどれくらい早いの?
データが多くなければMySQLの代わりに使える?

641:デフォルトの名無しさん
09/10/04 09:59:12
速さで言えば充分に速いと思うけど、
MySQL (リレーショナルデータベース) の価値は速さじゃないからなぁ…
代わりに使えるかどうかという疑問には簡単には答えられない。 状況による。

642:デフォルトの名無しさん
09/10/04 10:20:44
>>640
SQLite使いなよ。
URLリンク(www.cliki.net)

643:デフォルトの名無しさん
09/10/04 10:22:48
>>640
お前バカか?
基本ハッシュテーブルの方が早いわ。

644:デフォルトの名無しさん
09/10/04 10:28:32
>>641-643
wikiで関係代数、関係論理の項目読んでみた。
無知でごめん。勉強になります。

645:デフォルトの名無しさん
09/10/04 11:40:30
>>643
MySQLのHEAPテーブルだったらオンメモリなハッシュテーブルみたいだから
あまり変わらんのでは?

646:デフォルトの名無しさん
09/10/04 11:58:01
>>645
いや基本遅いから。
いちいちこんな簡単なこと聞くなよ低能。

647:デフォルトの名無しさん
09/10/04 12:53:17
日本語のようだが意味が通じない

648:デフォルトの名無しさん
09/10/04 13:53:54
アフリカ人並の読解力だな

649:デフォルトの名無しさん
09/10/04 14:16:01
差別発言だな

650:デフォルトの名無しさん
09/10/04 17:44:32
アフリカ人の平均言語性IQが異常に低いのは事実であり、差別発言ではない。

651:デフォルトの名無しさん
09/10/04 17:51:15
Lisperの平均的社会性が低いのは分かった。

652:デフォルトの名無しさん
09/10/04 18:11:00
知能の低い人や頭のおかしい人は、変なタイミングで変なことをわかっちゃうからね。
この人なら、町内会のチラシ見て宇宙の真理とかもわかっちゃいそう。

653:デフォルトの名無しさん
09/10/04 18:16:47
そのチラシに第42回とか、42歳とか、42年目とか書かれていたのかもしれん

654:デフォルトの名無しさん
09/10/04 18:53:36
人生、宇宙、すべての答えが42だとしても、
42という数字がそうであると一瞬で確信できるのはやっぱりキチガイ。

655:デフォルトの名無しさん
09/10/04 20:35:14
(defmacro macro-test ()
(let ((g (gensym)))
`(eq ',g ',g)))
を評価して

>(macro-test)
を評価すると
T
となるのですが

>(EQ '#:G6575 '#:G6575)
を評価すると
nil
となるのはどうしてでしょうか?


656:デフォルトの名無しさん
09/10/04 20:53:59
>>645
マニュアル見ると、機能的には実装もハッシュぽいね。
これならあんまりかわらないのかも。

657:デフォルトの名無しさん
09/10/04 21:08:32
>>655
前者は gensym で作成されたシンボルが g にうめ込まれている。二つは同じシンボルなので比較するとT。
後者はリーダーが読む毎に別のシンボルを作成する。後者の場合はリーダーが読んだ結果は (EQ <シンボルA> <シンボルB>) でこの二つは別のオブジェクト。
SYNBOL-NAME で取得するとどっちも "G6575" がかえってくるだろうけど、別のシンボル。#: はこれを実現するためのマクロだからね。
この動作は CLHS 2.4.8.5 で規定されている。

658:655
09/10/04 21:53:02
納得しました.ありがとうございました.

659:デフォルトの名無しさん
09/10/05 01:54:11
windowsにsbclとcffiをインストールすると
うまく動くPCと動かないPCがある
何が違うんだろう

660:デフォルトの名無しさん
09/10/05 06:08:18
>>656
アホだなお前。

661:デフォルトの名無しさん
09/10/05 09:07:17
> マニュアル見ると、機能的には実装もハッシュぽいね。

苦笑い

662:デフォルトの名無しさん
09/10/05 09:09:42
今迄、これほど顕著になることはなかったけれど、
なんかこのスレの程度の低さが露呈されてきたようだな。
このスレッドには基礎的なデータ構造すら理解できていない人間が多すぎる。

663:デフォルトの名無しさん
09/10/05 09:12:22
でもそのレスだったら、このスレで一番程度の低い人でも書けますよ。

664:デフォルトの名無しさん
09/10/05 21:29:52
ハッシュテーブルを外部プログラムに任せる方が速いCL実装があるとは信じら
れないが、そんなことが分からない人間がこのスレにいることは信じるしかない
みたいだな。


665:デフォルトの名無しさん
09/10/05 22:11:24
>>664
Lisp脳は簡単な日本語も分からないのか?
どこにLispの実装より早いと書いてある??? はぁ????



666:デフォルトの名無しさん
09/10/05 22:12:13
脳細胞がリストとS式出来ているから無理は無いかwwww


667:デフォルトの名無しさん
09/10/05 22:13:21
Orz

668:デフォルトの名無しさん
09/10/05 22:33:29
>>640
ハッシュテーブルで済む用途にはハッシュテーブルを使ったらいいし、
RDBS が必要な用途にはそれを使えばいい。
機能が違うのに性能を比較するのはナンセンス。

ただのハッシュテーブルで済むことに MySQL を使ってたのだとしたら、
アホなことやってんなぁと思う。 そんな話。

どうしても速度が気になるなら自分がやりたい条件で実測しろよ。

669:デフォルトの名無しさん
09/10/05 23:10:59
>>656
この低能さんはプログラマなの?

670:デフォルトの名無しさん
09/10/05 23:18:47
あんまり汚い言葉ばかり使っていると、自分のきれいな部分が汚れていくよ

671:656
09/10/05 23:32:23
学生です…ハッシュつかったO(1)かと思ったのですが、違ったんですかね。
不用意な発言で荒れてしまい申し訳ありませんでした。

672:デフォルトの名無しさん
09/10/06 00:13:37
殺伐としてきたな。まあお茶でも飲んで落ち着け


  旦旦旦旦旦旦旦旦旦旦旦/⌒ヽ旦旦旦旦旦旦旦旦旦
  ⊂二二二二二二二二二二( ^ω^)二二二二二二二二⊃  お茶が入りましたおー
                  |    /
                  ( ヽノ
                  ノ>ノ
              三  レレ


                         ∩     ダシャーン
       ミ                 //
     ミ    ⊂'ヽ  ∩      //   \
      ミ    \\\\_,,,,,,,,/ ∠          /
             \\\\    .,''.,':.',,      .,':.',, .,': l  .,':.',,|[]].,':...,
    ガッ        )   \\      ).,':.',,:.',,  []] .,':.',,.,':.',,.,日  .,':.',,.,':.',,          /
    ⊿   ⊂二二二、___ヽ \_,,..ノ  /[]].,':',,:',[]]/[]]\[]].,':.',,|[]].,':.',, _ .,':.',,]]/ 日.,':.',,.., . ..,,,;:[]]


673:デフォルトの名無しさん
09/10/06 00:20:50
lispは初心者を大事にするような風潮がないようだね。
最初は間違うものだから頑張れ。頑張れ。

674:デフォルトの名無しさん
09/10/06 00:53:48
>>673
黙れマッチポンプ

675:デフォルトの名無しさん
09/10/06 02:10:33
>>666
脳細胞がリストとS式で出来てるなんてうらやましい

676:デフォルトの名無しさん
09/10/06 02:15:53
全部weak pointerですが

677:デフォルトの名無しさん
09/10/06 02:53:18
頭を振ったらアトムが出てきたお

678:デフォルトの名無しさん
09/10/06 03:38:22
>>675
表現可能ってだけで、できているわけではない。
それにS式である必要もない。

679:デフォルトの名無しさん
09/10/06 12:48:29
リストはS式に含まれるから
単に(S式)か(アトムとコンスセル)かどっちかだな

680:デフォルトの名無しさん
09/10/06 20:28:07
lambda式を取り出す手段てありますか?
(lambda (...) ...)はマクロとして評価されて返ってくるのは関数ですよね。

直接lambda式をいじる、という状況はあまり思い浮かばないけど
なんとなく気になったもので。

681:デフォルトの名無しさん
09/10/06 22:30:21
>>679
M式って別の表現があることで分かるように、S式は印字表現だぜ。
>>680
#'(lambda (...) ...)のこと?

682:デフォルトの名無しさん
09/10/06 22:42:27
>>681 M式 … S式は印字表現
なにをば(ry


683:デフォルトの名無しさん
09/10/06 22:47:15
>>681
#'(lambda (...) ...)だと返ってくるのは関数ですよね。
ほしいのはその一段階前の状態です。
マクロとして評価されない(lambda (...) ...)と言えばいいのかな?

684:デフォルトの名無しさん
09/10/06 22:56:05
lambda はスペシャルフォームだお。

685:デフォルトの名無しさん
09/10/06 23:16:17
>>683
これかな。使ったことないけど。
URLリンク(www.lispworks.com)

686:デフォルトの名無しさん
09/10/06 23:38:20
>>685
意図していたのはまさにそれです。ありがとうございました。
自分で聞いといて何ですが、どういうときに使うんでしょうね。

687:デフォルトの名無しさん
09/10/07 00:04:50
function-lambda-expression の返す lambda expression に関しては、
CLHSにあるとおり nil が返る可能性があるからねぇ。最悪常に nil でもいいわけで。
ほとんどの処理系で最適化の具合でなくなっちゃうから、ユーザーレベルでこれを
アテにするほうな利用法はあまり見かけないね。プリティプリンタ、インスペクタなどの
表示系で nil になったても致命的じゃない場所で使われてるのはたまに見かける。

688:デフォルトの名無しさん
09/10/07 00:20:36
>>684
節子、それcommon lispやない、schemeや

689:デフォルトの名無しさん
09/10/07 01:40:17
節子、ここにいたのか

690:デフォルトの名無しさん
09/10/07 05:16:56
defunのついでにdefvarで適当な名前の変数に関数定義のS式を格納しておくマクロでも
書けばいいんでねえか

691:デフォルトの名無しさん
09/10/07 09:28:13
>>687
なるほど。表示系が一番適切そうですね。

>>690
書き込み見て気づきました。
       |
   \  __  /
   _ (m) _ピコーン
      |ミ|
   /  .`´  \
     ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    (・∀・∩< lambda式ってただのS式?
    (つ  丿 \_________
    ⊂_ ノ
      (_)


692:デフォルトの名無しさん
09/10/07 10:26:33
>>690
defun特化なら、そのシンボルのsymbol-plistに加えた方がいいのでは?
ただdefun特化だと、無名のクロージャのfunction-lambda-expressionは取れないよね。

それからS式は印字表現だっての。

URLリンク(en.wikipedia.org)
> The term S-expression or sexp (for symbolic expression) refers to
> a convention for representing semi-structured data in human-readable
> textual form.

Elisp辺りはobjectの意味で使ってるけど。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch