R6RS Scheme: 기호

R6RS Scheme: 기호

이름의 철자가 같은 경우에만 (eq?, eqv?, equal?의 의미에서) 동일한 객체인 기호(symbol)와 그 연산을 설명해요.

출처: 문서

본문

기호는 두 기호의 이름 철자가 같을 때 그리고 오직 그때 서로 동일하다는(eq?, eqv?, equal?의 의미에서) 사실에 유용성이 기반한 객체예요. 기호 리터럴은 quote로 만들 수 있어요.

(symbol? obj) — procedure

obj가 기호이면 #t를, 그렇지 않으면 #f를 반환해요.

(symbol? 'foo)          ⇒ #t
(symbol? (car '(a b)))   ⇒ #t
(symbol? "bar")          ⇒ #f
(symbol? 'nil)           ⇒ #t
(symbol? '())            ⇒ #f
(symbol? #f)             ⇒ #f

(symbol->string symbol) — procedure

symbol의 이름을 불변 문자열로 반환해요.

(symbol->string 'flying-fish)     
                          ⇒ "flying-fish"
(symbol->string 'Martin)          ⇒ "Martin"
(symbol->string
   (string->symbol "Malvina"))     
                          ⇒ "Malvina"

(symbol=? symbol1 symbol2 symbol3 ...) — procedure

기호들이 같으면, 즉 그것들의 이름 철자가 같으면 #t를 반환해요.

(string->symbol string) — procedure

이름이 string인 기호를 반환해요.

(eq? 'mISSISSIppi 'mississippi)  
⇒ #f
(string->symbol "mISSISSIppi")  
  ⇒ the symbol with name "mISSISSIppi"
(eq? 'bitBlt (string->symbol "bitBlt"))     
  ⇒ #t
(eq? 'JollyWog
     (string->symbol
       (symbol->string 'JollyWog)))  
  ⇒ #t
(string=? "K. Harper, M.D."
          (symbol->string
            (string->symbol "K. Harper, M.D.")))  
  ⇒ #t

더 알아보기 (Learn more)

출처: Symbols - R6RS