[r6rs-discuss] [Formal] "#! /usr/bin/env" is not "portable." It's Unix-specific.

Trent Buck trentbuck at gmail.com
Wed Nov 15 11:52:40 EST 2006


On Wed, Nov 15, 2006 at 10:02:10AM -0500, MichaelL at frogware.com wrote:
> > > The second option, though, would allow you to concat script
> > > files together and run them without further modification. So I
> > > would favor the second option.
> > 
> > That strikes me as a bizarre thing to want to do.  I can hardly
> > think of another language other than Fortran in which it's even
> > possible (fairly structureless languages like sh aside).
> 
> Really? We're talking about scripts, after all, and for most
> scripting languages (Ruby, Tcl, etc.) it wouldn't be a problem. Does
> Fortran have a mode that allows you to use a #! line? I would have
> thought that Fortran code would always have to be compiled, but I
> don't write Fortran code so I don't really know.

The relevant question is: WHY is concatenating Scheme files useful?

It seems to me that most use cases are better addressed by LOAD or (in
R5.91RS) libraries.  The only instance I can think of where it would
be useful for Scheme to be concatenative[1] is when you unavoidably
need to work with a single stream and no files.  Suppose you need to
run a scheme program on a Unix-like system with no writable storage.

    cat library-1.scm library-2.scm script.scm |
    ssh stupidhost scheme /dev/stdin

would work iff Scheme is concatenative.

[1] http://wikipedia.org/wiki/Concatenative_programming_language
-- 
Trent Buck, Student Errant



More information about the r6rs-discuss mailing list