[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: scsh in PLT Scheme?
Lo, on Tuesday, March 26, Paul Steckler did write:
(I should point out that I haven't really seriously used PLT scheme in
quite some time, so I'm basically evaluating scsh by comparing it to PLT
scheme 102 or thereabouts.)
> - do you currently use scsh?
>From time to time; see below.
> - what features of scsh do you use?
Mostly the POSIX and networking bindings---the equivalents of sections 2
and 3 of the standard Unix manual.
The s-expression notation for regular expressions is also pretty cool,
and I like some of the functions which operate on regexps: regexp-fold
and regexp-fold-right are quite cool, in particular.
I don't use the process notation or the awk stuff that often.
> - would you use a PLT scsh-oid that implemented some, but not all of
> scsh?
I'd certainly consider it; it depends rather heavily on exactly which
subset of scsh it supports.
> Because scsh is a moving target, ported C code would raise significant
> maintenance issues.
This is unfortunate, but I completely understand your reluctance to
attack such a problem.
<SNIP>
> Here's what would be missing:
>
> - low-level socket stuff (Ch. 4)
How low level is `low-level'? The one time I used scsh instead of PLT,
I did so because I needed to perform reverse DNS lookups. At the time,
PLT didn't support this operation, even in the networking collection.
Sure, I could have written a C extension, but I decided it wasn't worth
the headache of dealing with the FFI.
This is probably off-topic, but I will mention one thing that I really
like about scsh, or rather Scheme48: some of the features of the module
system make unit-testing much easier. In particular, at the REPL you
can `switch your perspective,' if you will, into a particular module.
Once you've done this, you have access to *all* of the module's
definitions, including those that are not exported. This is obviously
not something you want to do in a running program, but it does make
unit-testing the module easier, as you can test the module-private
functions directly.
Richard