- 1 名前:ミスターエックスワイジー [2007/10/06(土) 23:44:07 ID:L/pKByeF0]
- xyzzyってさ、一見さんお断りの京都料亭みたいでさ、何から手をつけていいのかわからないでしょ?
とりあえず,初心者同士で解決できる問題はまず過去ログ・グーグルで検索した後ここで相談しましょう たとえば ・ここのHPに書いてある通りにやりましたができません. ・xyzzyが起動しなくなりました. ・キーバインドってどうやって変更するの? 初心者の私が答えられるのはこの程度です. 自分でlispが書けるような方,こんな機能が欲しいのですが だれか作ってくださいという方は Win板本スレへ。 xyzzy Part15 @Win板(通称:本家) pc11.2ch.net/test/read.cgi/win/1175649315/ 過去ログ & 関連リンクは>>2-5あたりに。
- 569 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/25(火) 22:34:47 ID:3OCHSTON0]
- >>568
なんでかは知らないけど apply の最後の引数はリストじゃないとダメらしい。 (apply #'+ -5 4 3 1) => 2 (apply #'+ -5 4 3 1 ()) => 3 (apply #'+ '(-5 4) 3 1) => 不正なデータ型です: (-5 4): number (apply #'+ -5 4 '(3 1)) => 3
- 570 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/25(火) 22:39:29 ID:s0yHGKbv0]
- 何でも何も、そのまんまの動作だろ。
- 571 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/25(火) 22:54:17 ID:3OCHSTON0]
- いや、何でこういう仕様になっているのかなってこと。
別に最後の引数だけ特別扱いしなくても良さそうなのに。 って書いてから思ったけどそんなことしたら (apply #'list '(1 2 3)) が (list 1 2 3) なのか (list '(1 2 3)) なのか 分からなくなっちゃうのか。 勝手に納得しました。
- 572 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/25(火) 22:59:57 ID:A8Dcbrq10]
- だな。
(apply #'+ -5 4 3 1 ()) ってのは (apply #'+ '(-5 4 3 1)) を書き換えた形なわけだし。 末尾が(本来なら)nilである必要があるってことだ。
- 573 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/25(火) 23:08:17 ID:A8Dcbrq10]
- すまん、なんか勘違いしてた。無かったことに
- 574 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/25(火) 23:26:21 ID:3OCHSTON0]
- なんとなく分かった気がする。
単純に引数を順番に繋げているだけなのかも。 例えば (arg1 . (arg2 . (arg3 . last-arg))) は (arg1 arg2 arg3 . last-arg) と等価だけど、この場合 last-arg がリストじゃないと nil でターミネイトされない。 って理解でいいのかな?
- 575 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/25(火) 23:40:13 ID:s0yHGKbv0]
- apply の最後の引数は defun とか lambda 式の引数の &rest の部分
- 576 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/26(水) 00:33:48 ID:HpZOS2g+0]
- >>568
羅列で渡したいならfuncallを使えばいいじゃん。
|

|