0
intern
무엇을 할 것 같습니다. 어쩌면 (intern (read sym))
. 그러나 그것은 무엇을위한 것입니까? 나는 다음과 같이 사용되는 것을 본다 :알렉산드리아 란 무엇입니까?
(if (keywordp x)
(alexandria:ensure-symbol x)
x)
어떤 경우에 키워드가 있지만 기호가 아닌 것이있을 수 있는가?
intern
무엇을 할 것 같습니다. 어쩌면 (intern (read sym))
. 그러나 그것은 무엇을위한 것입니까? 나는 다음과 같이 사용되는 것을 본다 :알렉산드리아 란 무엇입니까?
(if (keywordp x)
(alexandria:ensure-symbol x)
x)
어떤 경우에 키워드가 있지만 기호가 아닌 것이있을 수 있는가?
문제의 기능은
(declaim (inline ensure-symbol))
(defun ensure-symbol (name &optional (package *package*))
"Returns a symbol with name designated by NAME, accessible in package
designated by PACKAGE. If symbol is not already accessible in PACKAGE, it is
interned there. Returns a secondary value reflecting the status of the symbol
in the package, which matches the secondary return value of INTERN.
Example:
(ensure-symbol :cons :cl) => cl:cons, :external
"
(intern (string name) package))
즉, 당신의 코드는이 작업을 수행 defined
과 같습니다x
가합니다 (
KEYWORD
패키지에 구금
symbol는) 다음이와 함께 "일반"기호를 반환
keyword 경우 현재 패키지
*package*
에있는 동일한 이름입니다 (그렇지 않으면
x
을 반환합니다).
Lisp 개발 환경에서는 일반적으로 키보드 조합 메타를 사용할 수 있습니다. 소스 코드로 이동하려면 기호를 누르십시오. 일부 개발 환경은 또한'(ed 'some-function-name)'을 지원하여 각각의 소스 코드로 편집기 창을 엽니 다. –