[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
match questions
1. Do we want a match facility?
No. Unless it involves adding no new special forms. I won't
object to a couple of utility procedures in the Yellow pages
for the people who use this sort of thing.
2. Given a match facility, do we need optional arguments?
We don't need them as it is. I'd much rather agree on
something for optional arguments (which I use regularly), than
on some facility I find no use for.
3. Should patterns be in read format (with quote), e.g. ('x 1 y), or
in construction expression format, e.g. (list 'x 1 y)?
I could not care less.
4. Can we define a good way of declaring additional constructors, to
get more of an ML like matching mechanism?
I don't know. Whatever it is, I feel it should simultaniously
define constructor, predicate and destructuring functions.
The obvious approaches I've thought of seem a bit clunky, and
I question whether we want to add that much mechanism to
Scheme.
Adding a match facility is adding too much mechanism as it is.
5. Do we want to be able to embed arbitrary predicates in patterns,
and if so, with what syntax?
I could not care less.
6. Should the match facility be an abstraction (lambda) or local
binding (let) form, or should it provide both?
The only way I'll be happy with it is if it involves no
special forms. Then users can write their own syntactic
extensions to make it convenient if they need it.
7. Should MATCH be required, optional, or "Yellow Pages".
Definitely Yellow Pages if at all.
It seems hard to come up with definitive answers to some of these
questions. However, I don't see any indication that the issues
here are deep, so we should be able to agree on something satisfactory
without a whole lot of research. So let's try to do it in time for
the July (?) meeting.
I'm sorry, but I fail to see the point of a MATCH extension to the
language. Every time I've wanted pattern matching, I've built my own,
because the constraints and requirements were different, so a fixed
utility would do me no good. We might as well try to agree on a UNIFY
facility. It would probably be more useful.