On Tue, Feb 17, 2009 at 11:17:36PM -0800, Brian Harvey wrote:
> > What makes you think that mathematicians would vote against
> > multiple return values?
> 
> Oh, because actual functions only have one value; that's what makes them
> functions rather than relations.

Well, maybe, but scheme functions are already also functionals,
and even mathematical functions may have multi-dimensional
results.

There's a limit to the usefulness of that sort of purity, (or
rather, analogue) isn't there?  We're realy dealing in the realm
of computability and algorithms, rather than domains and ranges.
Algorithms can certainly produce multiple results that one
wouldn't want to restrict to being elements of a vector.  When
you want to be able to both factorise and package algorithms in
terms of "functions" that transform arguments (and state) into
results (and state), then a single result is firmly in the realm
of a limitation that should be removed, in my book.

> That's why I said "mathematician" and not "theoretician," which some of the
> responses to my message seem to have thought I meant.

'Spose that makes me neither.  I can live with that.

> Seems to me that all
> the great programming languages are built on mathematical ideas rather than
> computer science ideas.  We have Lisp (functions), APL (vectors),
> Prolog (relations), and ISETL (sets).
> 
> As others have said, this seems like a funny way to divide us.  I view
> myself as a Scheme user, not a theoretician and certainly not an implementor,
> but couldn't care less about records or modules, still less Unicode.

So you don't care if records and modules are available, and if
Unicode is handled competently and transparently?

> I care
> about teaching students the power of the idea that programming languages
> should be designed, not by piling feature on top of feature, but by removing
> the restrictions that make additional features appear necessary.  (That's
> from memory, so probably not quite right. :-)  I enjoy explaining why we
> don't need to invent Scheme++.
> 
> If there's a division, it's probably between industrial users and academic
> users.  Maybe implementors are a third camp; I'm not sure.

There's not a place for large-system design and large-team
software engineering practice?  Even if many (or most?) real
software projects are small-ish and undertaken by individuals or
small groups, they typically use modules and libraries created
over time by other people, which amounts to the same thing.
You may have to deal with someone revising the interface to
the graphics library that you are using to teach your junior
students, from time to time.

> Should there be one language for both?  No; there should be Common Lisp for
> the industrial users and Scheme for the academic users.

Common Lisp is all well and good, but I can't see any reason why
scheme isn't good enough (perhaps with the odd tweak), too.  If
it isn't, then doesn't that show the scheme mantra to be a lie?

> Anyway, I'm glad to have precipitated some actual discussion -- it's been
> awfully quite on the list since the electors were invited to join it!  :-)

Actual discussion has been great so far.

Cheers!

-- 
Andrew

_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to