problem with telnet server

Per Bothner per@bothner.com
Fri Dec 20 10:36:00 GMT 2002


jason songhurst wrote:
> kawa does the same thing with one line:
>   (define (f n) (f))
> 
> neither of these examples should run in any scheme, because they make 
> calls that have the wrong number of arguments.   however in some other 
> interpreted schemes (SCM, Bigloo, MzScheme) they croak when evaluated, 
> not when defined.

This now gives you a clean compile-time error:
<stdin>:1:16: call to 'f' has too few arguments (0; must be 1)

>   oddly, it doesn't happen with mutually recursive functions:
>      (define (f n) n)
>      (define (g) (f))
> 
>   these eval just fine and when g is applied, a runtime exception
>   is thrown and you find yourself back at the REPL.

If you wrap the definition in a begin (to force them to be
processed as a unit), then yet yet a compile-time error.
You also do that when you place them in a file and compile it.
-- 
	--Per Bothner
per@bothner.com   http://www.bothner.com/per/



More information about the Kawa mailing list