Email list hosting service & mailing list manager

meta-comment on typing Per Bothner (05 Oct 2005 17:35 UTC)
Re: meta-comment on typing John.Cowan (05 Oct 2005 22:00 UTC)
Re: meta-comment on typing Per Bothner (05 Oct 2005 22:14 UTC)
Re: meta-comment on typing John.Cowan (06 Oct 2005 04:55 UTC)
Re: meta-comment on typing Michael Sperber (06 Oct 2005 06:03 UTC)
Re: meta-comment on typing Per Bothner (06 Oct 2005 15:35 UTC)
[SRFI 77] integer-length and integer-sqrt Jens Axel Søgaard (06 Oct 2005 15:54 UTC)
Re: meta-comment on typing Michael Sperber (06 Oct 2005 16:17 UTC)

meta-comment on typing Per Bothner 05 Oct 2005 17:35 UTC

Personally I prefer to specify which operation to use by (optional)
type declarations, rather than explicitly specying the operation.
That is more like what other languages do, including Common Lisp.
Specifying parameter, returns, and global variable types is better
for documentation, better for error-checking, and is easier for
compilers to generate better code.  Also, it makes the code more
readable.  It's a choice bwteeen:
(define (square-sum (x :: <flonum>) (y :: <flonum>))
   (+ (* x x) (* y y)))
or:
(define (square-sum x y)
   (fl+ (fl* x x) (fl* y)))
If you have type specifiers, you don't need the separate operation
names.  And type specifiers are much to be preferred.  After all
if Scheme is a teaching language, we want to encourage our students
to use type declarations, I think.
--
	--Per Bothner
xxxxxx@bothner.com   http://per.bothner.com/