In Common Lisp (SBCL), it is possible to create vectors (arrays) using ' before the # or not:
CL-USER> '#(a b c)
#(A B C)
CL-USER> #(a b c)
#(A B C)
Apparently, they seem to generate the same object. After using type-of and describe on these expressions, they return identical information:
CL-USER> (type-of #(a b c))
(SIMPLE-VECTOR 3)
CL-USER> (type-of '#(a b c))
(SIMPLE-VECTOR 3)
CL-USER> (describe #(a b c))
#(A B C)
[simple-vector]
Element-type: T
Length: 3
; No value
CL-USER> (describe '#(a b c))
#(A B C)
[simple-vector]
Element-type: T
Length: 3
; No value
Equality is also the same (with equalp):
CL-USER> (equalp '#(a b c) #(a b c))
T
But differs wit equal:
CL-USER> (equal '#(a b c) #(a b c))
NIL
The ' is not the responsible for the above result being NIL:
CL-USER> (equal '#(a b c) '#(a b c))
NIL
Is there any practical consequences of using one approach instead of the other when creating arrays?
Thanks.