Scheme 48 Manual | Contents | In Chapter: Command processor
Previous: Command processor | Next: Command levels

## Current focus value and `##`

The command processor keeps track of a current focus value. This value is normally the last value returned by a command. If a command returns multiple values the focus object is a list of the values. The focus value is not changed if a command returns no values or a distinguished `unspecific' value. Examples of forms that return this unspecific value are definitions, uses of `set!`, and `(if #f 0)`. It prints as `#{Unspecific}`.

The reader used by the command processor reads `##` as a special expression that evaluates to the current focus object.

>     > (list 'a 'b)
>     '(a b)
>     > (car ##)
>     'a
>     > (symbol->string ##)
>     "a"
>     > (if #f 0)
>     #{Unspecific}
>     > ##
>     "a"
>     >

Previous: Command processor | Next: Command levels