2017-11-28 6 views
1

일부 기본 리스프/체계를 수행하고 있으며 빈 목록/null (함수가 거의 동일하게 동작하는 것을 이해함)을 전달할 수없는 문제가 발생합니다. .스키마가 함수 목록으로 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