[plt-scheme] Science Collection

From: Williams, M. Douglas (M.DOUGLAS.WILLIAMS at saic.com)
Date: Mon Oct 4 14:38:40 EDT 2004

I wish it was easy to write truly portable Scheme code.  However, "pure"
Scheme just doesn't support 'programming in the large' well, making it
difficult to write production quality code that is portable.  SRFIs help,
but are inconsistently implemented.  I use many features of PLT Scheme that
I know are not portable (e.g., +/- infinities and non-a-number for numeric
processing, parameters for thread-safety, exceptions, modules, contracts,
graphics, ...), but it's more of necessity for the quality of code I want -
in my opinion - than desire.  Your advice is definitely not ignored, just
agonized over for many years.


-----Original Message-----
From: Gene Sullivan [mailto:gene_sullivan at yahoo.com] 
Sent: Monday, October 04, 2004 11:12 AM
To: Williams, M. Douglas
Cc: plt-scheme at web-ext.cs.brown.edu
Subject: Re: [plt-scheme] Science Collection

As you wrote `Thanks in advance for any advice.'
I hope the following advice is well received.

Write your package in plain ol' scheme rather
than for a specific implementation such as
PLT ... then send a copy to whoever is maintaining
the extant repository of other such packages known
as SLIB (EG Scheme LIBrary)
As SLIB already supports PLT scheme your
package will be usable by both the target audience
for whom you were/are(?) writing it ... AND the
audience of scheme users at large.
If you either don't want to foster diversity or
specifically wish to favor PLT scheme over other
implementations of an already outnumbered language
(EG Scheme vis-a-vis C++, Java, etc.) then feel 
free to ignore this `advice'.

  Scheming Gene

--- "Williams, M. Douglas"
<M.DOUGLAS.WILLIAMS at saic.com> wrote:

> I am currently developing a numerical computing
> package in PLT Scheme to
> support my knowledge-based simulation work.  I am
> almost ready to release it
> and have a few questions of the PLT Scheme community
> at large.
> 1.  My current plans are to distribute it using
> PLaneT.  Is this the
> appropriate distribution medium?
> 2.  The entire science collection is rather large -
> several dozen modules in
> eight primary areas: Mathematical Constants and
> Functions, Special Functions
> (Error Functions, Gamma Functions, Psi Functions,
> and Zeta Functions),
> Random Number Generation (extensions to SRFI 27:
> Sources of Random Bits),
> Random Number Distributions (including density
> functions and plotting),
> Statistics, Histograms (continuous (1D and 2D) and
> discrete, including
> plotting), Chebyshev Approximations, and PLoT Scheme
> Extensions (histogram
> data plotting, discrete function and data plotting).
>  Currently, it is
> packaged (and documented) as a single collection
> with sub-collections for
> the special functions and random number
> distributions.  Would it be better
> to distribute the functionality as individual
> collections (presumably eight
> matching the functional areas above)?
> 3.  In the last week, I updated all of the modules
> to use provide/contract
> to define and enforce parameter (and result) types,
> ranges, and
> inter-argument constraints.  I really like the
> concept and think it's a
> great feature.  However, it seems (very subjective
> here) that my examples
> run about an order of magnitude slower than before. 
> [To be fair, nothing is
> pre-compiled and much of that may be overhead due to
> compilation time when
> they are loaded.]  Does anyone have a good handle on
> the overhead associated
> with using contracts?
> 4.  The documentation is about 80% complete, but
> there is content in all of
> the sections that should give anyone a feel for what
> it provides.  The pdf
> file is over half a meg and I felt it would not be
> good list etiquette (or
> even possible) to attach it.  I would, however, be
> happy to send it to
> anyone who wants to look at it.  [I don't have ready
> access to any servers
> outside of a firewall so I can't post a link,
> either.  But, if anyone else
> would like to do so, I can send them the document.]
> 5.  The code is essentially complete - just some
> minor clean-up needed, but
> has not been made into a .plt file.  I could zip it
> (it happens to be
> resident on a Windows box at the moment) and one
> could manually install it,
> if anyone really wants to see the code.
> Thanks in advance for any advice.

Do you Yahoo!?
Yahoo! Mail Address AutoComplete - You start. We finish.

Posted on the users mailing list.