[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

meta-comment on typing

This page is part of the web mail archives of SRFI 77 from before July 7th, 2015. The new archives for SRFI 77 contain all messages, not just those from before July 7th, 2015.

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)))
(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
per@xxxxxxxxxxx   http://per.bothner.com/