[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:01033] Re: site-lisp について



島田さん、こんにちは。

    Fri, 13 Nov 1998 17:14:56 +0900 の
   “[xyzzy:01030] Re: site-lisp について”
    への返事です.

| |(setq private-load-path "c:/usr/home/lisp")
| |(setq *load-path* (cons private-load-path *load-path*))

これでいいはずなんですけど(^^;
元の *load-path* の値が変みたいです。

| 不都合ないならこだわりませんが、Lisp への好奇心という
| ことで、質問します。

不都合はたぶんあります(^^;


| というふうに返ってきます。この真ん中の . は何でしょう?

(a . b) というのはドット対と呼ばれています。

(a b c) という表記法は、実際には (a . (b . (c . nil))) という構
造をしているのですが、以下の規則によって (a b c) と書くようにな
っています。

1) cdr [`.'の右側] が nil の場合は、`.' と `()' を省略する。
2) cdr が `.' を含まないリストの場合は `()' を省略する。

従って、

      (a . (b . (c . nil)))
  --> (a . (b . (c)))
  --> (a . (b c))
  --> (a b c)

というように省略できます。

で、どんな不都合があるかですが、一般にリストを扱う関数は、car 
[`.'の左側] しか相手にしないので、*load-path* が

  ("c:/usr/home/lisp" . "c:/usr/home/bin/xyzzy/lisp")

の場合、"c:/usr/home/bin/xyzzy/lisp" が無視されてしまいます。

--
亀井哲弥(Tetsuya Kamei)
kamei@xxxxxxxxxxxx/JCA00343@xxxxxxxxxxx

Index Home