common-lisp
인용문
수색…
통사론
- (quote object) -> 객체
비고
평가할 때 따옴표를 달 필요가없는 일부 개체 (예 : 키워드 기호)가 있습니다.
간단한 견적의 예
따옴표는 해당 인수의 평가를 방해하는 특수 연산자 입니다. 평가되지 않은 인수를 반환합니다.
CL-USER> (quote a)
A
CL-USER> (let ((a 3))
(quote a))
A
'는 특수 연산자 QUOTE의 별명입니다
표기법은 'thing
(quote thing)
'thing
과 같습니다.
독자 가 확장 작업을 수행합니다.
> (read-from-string "'a")
(QUOTE A)
따옴표는 더 이상의 평가를 막기 위해 사용됩니다. 인용 된 객체는 자체적으로 평가됩니다.
> 'a
A
> (eval '+ 1 2)
3
따옴표로 묶인 객체가 파괴적으로 수정되면 그 결과는 정의되지 않습니다!
따옴표 붙은 객체에 대한 파괴적인 조작을 피하십시오. 인용 된 객체는 리터럴 객체입니다. 코드에 어떤 식 으로든 포함될 수 있습니다. 이것이 어떻게 작동하고 수정의 효과는 Common Lisp 표준에서는 지정되지 않지만 공유 데이터 수정, 쓰기 보호 된 데이터 수정 또는 의도하지 않은 부작용 생성과 같은 원치 않는 결과를 초래할 수 있습니다.
(delete 5 '(1 2 3 4 5))
따옴표 및 자체 평가 개체
많은 데이터 유형은 자체적으로 평가되기 때문에 따옴표로 묶을 필요가 없습니다. QUOTE
는 Lisp 형태의 평가를 막기 위해 기호와리스트에 특히 유용합니다.
평가를 막기 위해 따옴표로 묶을 필요가없는 다른 데이터 유형의 예 : 문자열, 숫자, 문자, CLOS 객체, ...
다음은 문자열 예제입니다. 평가 결과는 출처에서 인용되었는지 여부에 관계없이 문자열입니다.
> (let ((some-string-1 "this is a string")
(some-string-2 '"this is a string with a quote in the source")
(some-string-3 (quote "this is another string with a quote in the source")))
(list some-string-1 some-string-2 some-string-3))
("this is a string"
"this is a string with a quote in the source"
"this is another string with a quote in the source")
따라서 오브젝트에 대한 인용은 선택적입니다.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow