나는 newlisp을 배우기 시작하지만 따옴표와 '나 퍼즐. newlisp에서newLISP에서 따옴표는 '?
> (= '(quote 1) ''1)
nil
또는
> (first (quote (quote 1)))
quote
> (first ''1)
ERR: array, list or string expected in function first : ''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
은 인용 '은 다르다?
또는 이것은 버그입니까?
둘 사이에는 약간의 차이가 있습니다. 작은 따옴표는 따옴표 붙은 셀을 보호 봉투에 넣을 때 소스 코드를 번역하는 동안 해결됩니다. quote
함수는 평가 중에도 동일하게 수행합니다. 대부분의 경우 그들은 같은 방식으로 행동합니다.
따라서 quote
함수는 원래 Lisp quote
과 비슷합니다. '
은 코드 변환 중에 수행되는 최적화입니다. 코드 변환 및 평가에 대해 더 알고 싶다면 read-expr
및 eval-string
함수를 비교하십시오.
newlisp의 소스를 읽었습니다. ** 인용문 **은 SYMBOL로 번역되었지만 ** '**는 번역되었습니다. 따옴표로. 나는 똑같은 일을한다. CL과 Schme이 인용문을 돌려 줄 수있다.'(car ''a)'왜 newlisp가 이것을 하는가? – skeu
Lisps 간에는 많은 차이가 있습니다. :) "이유"에 관해서는 newLISP의 저자에게 이메일을 보내거나 newLISP 포럼에 질문하는 것이 가장 좋습니다. – cormullion
:) 대단히 감사합니다! – skeu
죄송합니다. newlisp이 Common Lisp 준수를 기억하고 있다고 생각했지만, 그렇지 않았습니다 ... – Bandrami