Constructor-style output is inconvenient for printing S-expression results that represent programs. For example, the value '(lambda (x) (lambda (y) (+ x y))) prints as (list 'lambda (list 'x) (list 'lambda (list 'y) (list '+ 'x 'y)))
with constructor-style printing.
DrScheme's quasiquote-style output combines the input-output invariance of constructor-style printing with the S-expression readability of write. It uses quasiquote to print lists, and uses unquote to escape back to constructor style printing for non-lists and non-symbols.
With quasiquote-style printing, the above example prints as: `(lambda (x) (lambda (y) (+ x y)))
This example: (list 'lambda (list 'x) (box '(lambda (y) (+ x y))))
in quasiquote-style printing prints as:
`(lambda (x) ,(box `(lambda (y) (+ x y))))