Name: Anonymous 2012-07-13 17:31
Aside from the issue of uninterned symbols, why are these separate and not the exact same thing? Alternatively, are these any situations in which you need to differentiate between strings and symbols?
#;1> (define faggot "faggot")
#;2> (string? faggot)
#t
#;3> (symbol? faggot)
#f
#;4> (symbol? 'faggot)
#t
(define op "faggot")
(string-append "Op is " op) ; => "Op is op" or "Op is faggot"?
(define op 'faggot)
(string-append 'Op\ is\ op) ; => Op is faggot
(string-append 'Op\ is\ 'op) ; => Op is op(define faggot #f)
(define op "faggot")
(define (eval-display x) (display (eval x)))
(for-each eval-display (list "Op is " op))
; I expect it to print "Op is faggot"
; But if "faggot" == 'faggot it must print "op is #f"
(define a "hello")
#<unspecified>
(define b "hello")
#<unspecified>
a
"hello"
b
"hello"
(string-set! a 4 #\!)
#<unspecified>
a
"hell!"
b
"hello"