[plt-scheme] v4 questions

From: Mark Engelberg (mark.engelberg at gmail.com)
Date: Sun Mar 30 08:08:05 EDT 2008

I've been looking through the preview reference:
http://pre.plt-scheme.org/docs/html/reference/index.html for v4.0, and
have a few comments/questions.

1. Why no streams?  Wouldn't it be nice to have a solid stream
implementation with namings that are consistent with the PLTScheme
list functions, and integrated into the comprehension syntax, i.e.,
for/stream ?  Please consider this...

2. It seems odd to me that make-hash-table defaults to eq?, whereas
#hash() defaults to equal?  Given the new emphasis on immutability, I
think both should default to equal? for consistency, with a flag to
make-hash-table for eq?  Perhaps this is a backwards compatibility
issue?

3. I read about Clojure on a few Scheme blogs, and read through the
docs the other day.  I really liked the use of extensible, immutable
vectors and hashtables, and how they respond to the same
cons/first/rest functions used for lists.  Given the v4 emphasis on
immutability, it would be nice to have built-in support for more
"functional" data structures that don't require destructiveness to
update.

4. I noticed that the built-in list functions and string functions are
a tiny bit beefier than v372, but still fall short from the more
complete SRFI implementations.  I hope that it will be extremely easy
to bring in the missing functions without conflict.  In v372 it's a
bit awkward to get a full suite of string and list functions because
of conflicts.

5. OK, this has been bugging me for a while... why is the "member"
function not "member?".  It's a predicate, right?

6. It would be nice if assoc and its kin could take an optional
default lookup value, like hash-table-get.

--Mark


Posted on the users mailing list.