openlang

symbol-name에서 원래 대소문자 얻기

Common Lisp에서 대문자로 변환하지 않은 symbol-name 결과를 얻을 수 있나요?

(symbol-name 'cCdD)
;; => "CCDD"

(ANOTHER_FUNCTION? 'cCdD)
;; => "cCdD"

대소문자를 보존하면서 심볼 이름을 문자열로 쓰고 싶습니다.

영어에서 번역원문 보기

이어지는 대화 2

서로의 근거를 따라
  1. 고유 링크

    리더가 이미 변환했기 때문에 실제 심볼 이름은 대문자예요. 이를 피하려면 readtable-case를 바꾸거나 심볼을 이스케이프하면 되는데, 파이프로 감싸는 '|cCdD| 방식이나 다음 문자를 백슬래시로 이스케이프하는 '\cC\dD 방식을 쓸 수 있어요.

    영어에서 번역원문 보기
  2. 고유 링크

    이 질문에 꽤 자세한 설명이 있어요: Common Lisp는 왜 대소문자를 무시하나요 (https://stackoverflow.com/questions/7375537/why-is-common-lisp-case-insensitive)

    "readtable 객체에는 readtable-case 속성이 있고, 리더가 심볼을 등록하고 평가할 때 어떻게 처리하는지 결정합니다. setf로 readtable-case 값을 :upcase(default), :downcase, :preserve 또는 :invert로 설정할 수 있습니다.

    readtable-case의 기본값은 :upcase이므로 리더는 읽는 모든 심볼을 대문자로 바꿉니다."

    영어에서 번역원문 보기

같은 질문의 다른 갈래

  1. String.Format을 호출할 때 퍼센트 문자는 어떻게 이스케이프하나요?

    strings.xml 파일에 SQL 쿼리를 저장해 두고, 코드에서 String.Format으로 최종 문자열을 만들려고 해요. SELECT 쿼리에는 이런 like 절이 들어 있어요: 서식을 적용하려고 'pattern'을 %1$…

    답글 3최근 활동 java
  2. F#에서 문자열 서식 지정하기

    처음으로 F# 라이브러리를 만들고 있어요 string.Format를 사용하면 그런 함수가 없다는 오류가 나와요. 제가 잘못한 걸까요, 아니면 원래 없는 기능인가요?

    답글 2최근 활동 fsharp
  3. tcl 문자열에서 한 부분 추출하기

    tcl로 Reports/Report#2.rpt를 나눠서 Report#2.rpt만 남기려고 해요 ; 다음 방법을 시도했지만 실행해도 아무 출력이 없었어요 :

    답글 2최근 활동 tcl