2017-11-28 8 views
1

私はいくつかの基本的なlisp /スキームを実行しています。空のリスト/ nullを渡すことができない問題にぶち当たっています。 。スキームが関数リストとしてヌルリストを渡す

(define (fxn L) 
    (if (null? L) 
     ('()) 
     (cdr L))) 

そして、私は

> (fxn '()) 
procedure application: expected procedure, given:() (no arguments) 

> (fxn null) 
procedure application: expected procedure, given:() (no arguments) 

何かアドバイスを取得しています。たとえば ?

答えて

1

これは、ifステートメントに括弧が約'()あるために起こります。 '()は関数ではなくリテラルなので、カッコで囲むことはできません。

試してみてください。それがあった

(define (fxn L) 
    (if (null? L) 
     '() 
     (cdr L))) 
+0

おかげで、 – Tom

関連する問題