2013-12-23 3 views
1

나는 newlisp을 배우기 시작하지만 따옴표와 '나 퍼즐. newlisp에서newLISP에서 따옴표는 '?

> (= '(quote 1) ''1) 
nil 

또는

> (first (quote (quote 1))) 
quote 

> (first ''1) 
ERR: array, list or string expected in function first : ''1 

은 인용 '은 다르다?
또는 이것은 버그입니까?

+0

죄송합니다. newlisp이 Common Lisp 준수를 기억하고 있다고 생각했지만, 그렇지 않았습니다 ... – Bandrami

답변

1

둘 사이에는 약간의 차이가 있습니다. 작은 따옴표는 따옴표 붙은 셀을 보호 봉투에 넣을 때 소스 코드를 번역하는 동안 해결됩니다. quote 함수는 평가 중에도 동일하게 수행합니다. 대부분의 경우 그들은 같은 방식으로 행동합니다.

따라서 quote 함수는 원래 Lisp quote과 비슷합니다. '은 코드 변환 중에 수행되는 최적화입니다. 코드 변환 및 평가에 대해 더 알고 싶다면 read-expreval-string 함수를 비교하십시오.

+0

newlisp의 소스를 읽었습니다. ** 인용문 **은 SYMBOL로 번역되었지만 ** '**는 번역되었습니다. 따옴표로. 나는 똑같은 일을한다. CL과 Schme이 인용문을 돌려 줄 수있다.'(car ''a)'왜 newlisp가 이것을 하는가? – skeu

+0

Lisps 간에는 많은 차이가 있습니다. :) "이유"에 관해서는 newLISP의 저자에게 이메일을 보내거나 newLISP 포럼에 질문하는 것이 가장 좋습니다. – cormullion

+0

:) 대단히 감사합니다! – skeu

관련 문제