This is the mail archive of the
guile@sourceware.cygnus.com
mailing list for the Guile project.
Re: Language design values (Re: message primitive)
- To: Maciej Stachowiak <mstachow at alum dot mit dot edu>
- Subject: Re: Language design values (Re: message primitive)
- From: Lynn Winebarger <owinebar at free-expression dot org>
- Date: Tue, 11 Jan 2000 20:42:11 -0500 (EST)
- cc: guile at sourceware dot cygnus dot com
On Tue, 11 Jan 2000, Maciej Stachowiak wrote:
> "Reynolds, Gregg" wrote:
> >
> >
> > Question: how can one express the notion that the members of the basis set
> > themselves are maximally simple? Presumably one could define a basis set
> > that includes semantically complex functions which could be expressed as a
> > combination of a different basis set. I'm having trouble at the moment
> > coming up with a realistic example, but suppose you had a "frobnicate"
> > function that really means "first bevorpilate, then pibbelize", but the
> > latter two are excluded from the language for some reason, or are always
> > implicit in other primitives. Is there a term from mathematics that one
> > could use to indicate a basis set has or has not been maximally decomposed?
> >
>
> In linear algebra one basis is as good as another. Obviously this is
> not the case with programming languages. But the metaphor is getting
> quite
> a bit overextended here.
This is not quite the case. In _finite_ vector spaces, this is pretty
much true. However, once you start looking at infinite vector spaces, you
want to choose a basis that minimizes the number of terms needed to
express whatever elements you want to express.
This corresponds to tailoring your fundamental metaphors when writing a
language (particularly a domain specific language, or even a library for
that matter) to the kinds of problems you want to make it easy to solve.
It also happens to be a fundamental method in designing compression
algorithms for continuous data (like audio or video).
Lynn
whose been in math grad skool too long