[plt-scheme] v4 questions
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