Why do + and * evaluate to 0 and 1 respectively?

Viewed 171

I'm using GNU/MIT Scheme:

1 ]=> (+)

;Value: 0

1 ]=> (*)

;Value: 1

1 ]=> (-)

;The procedure #[arity-dispatched-procedure 2] has been called with 0 arguments; it requires at least 1 argument.
;To continue, call RESTART with an option number:
; (RESTART 1) => Return to read-eval-print level 1.

2 error> (/)

;The procedure #[arity-dispatched-procedure 3] has been called with 0 arguments; it requires at least 1 argument.
;To continue, call RESTART with an option number:
; (RESTART 2) => Return to read-eval-print level 2.
; (RESTART 1) => Return to read-eval-print level 1.

How come + and * are both evaluated to 0 and 1 respectively. And why evaluating - and / throws an error?

Is this part of the Scheme definition or is it an implementation detail in GNU/MIT Scheme?

2 Answers
Related