2016-03-29 13 views
0

私は問題に直面しています。リストの特定の部分を出力する関数を作成すると、実際の要素ではなくNILとして出力されます。Lisp:関数はリストのNILを出力します

例:thelistが関数で使用されるが、単独で使用する場合、それはうまく最初の要素を出力したとき

> (setf thelist '((a b) (c (d e f)) (g (h i))) 
> (defun f1(list) 
     (print (car (list)))) 
> (f1 thelist) 
    NIL 
    NIL 

But this works: 
> (car thelist) 
    (A B) 
  1. なぜそれがNILを印刷していますか?
  2. リストのどの部分を印刷したいのですか?

答えて

11

あなたが持っている:これはあなたのlistパラメータを使用していないthe list function、およびを起動さ

(print (car (list))) 

(list)は常に空のリストを返します。 (Common Lispは関数呼び出しのコンテキストでlistが可変アクセスコンテキストでlistから別のものを指していることを意味し、「Lispの-2」である。)

が使用するようにコードを変更、修正するには:

(print (car list)) 

代わりに

関連する問題