SBCL에 대한 모든 유효한 인코딩의 목록을 얻으려면 목록, 나는이 작업을 수행 :SBCL : 모든 유효한 문자 인코딩이
(let (encoding-list)
(let (symbol-list)
(do-external-symbols (s :keyword)
(push s symbol-list))
(setf symbol-list (sort symbol-list #'string<))
(mapc (lambda (x)
(when (ignore-errors
(with-open-file
(phyle "scratch1"
:direction :output
:if-exists :supersede
:external-format x)
1)) ; <-- produce something non-NIL
(push x encoding-list)))
symbol-list))
(nreverse encoding-list))
SBCL에서이 작업을 수행하는 쉬운 방법이 있나요? 예를 들어 clisp에서 모든 인코딩은 CHARSET 패키지의 외부 기호입니다.
목록이 필요한 용도는 무엇입니까? 매뉴얼에는 사용 가능한 것을보고 싶다면 [list] (http://www.sbcl.org/manual/#External-Formats)가 있습니다. 내부적으로 SBCL에는 모든 외부 형식을 포함하는 해시 테이블'SB-IMPL :: * EXTERNAL-FORMATS *'가있는 것으로 보입니다. – jkiiski
@jkiiski : 저는 모든 형식을 탐색 할 수있는 LISP 프로그램을 작성하고 있습니다. 내 LISP 프로그램은 매뉴얼을 읽을 수 없다. 당신의 제안은 효과가 있었고 (놀랄 일도 아니지만) 매뉴얼과 같은 형식을 만들어 냈습니다. 진짜 살아있는 대답이라면, 받아 들일 수있어서 기쁩니다. 내 kludgey 방법은 "DEFAULT"를 포함한다는 점을 제외하면 동일한 출력을 생성합니다. –