DrScheme treats cons, vector, and similar primitives as value constructors, rather than functions. It also treats list as shorthand for multiple cons's ending with the null list. So, when values are printed, they look different from usual scheme implementations. This table details all of the differences between MzScheme's and DrScheme's printed values.
DrScheme's printer can be confusing the first time you use it--but if you look at complicated values in MzScheme, for example: (1 2 dog (4 . 5) #((1 . 2) 3)) you would see: (list 1 2 'dog (cons 4 5) (vector (cons 1 2) 3))
in DrScheme, and the structure of the value is transparent.
However, the printer is not as useful if you are working with s-expression as scheme code. For example, the value '(lambda (x) (lambda (y) (+ x y))) will print as
(lambda (x) (lambda (y) (+ x y)))
in MzScheme, but will print as
(list 'lambda (list 'x) (list 'lambda (list 'y) (list '+ 'x 'y)))
in DrScheme.