Newsgroups: comp.lang.scheme,alt.lang.scheme.scsh
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!oitnews.harvard.edu!purdue!lerc.nasa.gov!magnus.acs.ohio-state.edu!math.ohio-state.edu!howland.reston.ans.net!ix.netcom.com!netcom.com!netcom2!gunter
From: gunter@netcom2.netcom.com (Mike Gunter)
Subject: Re: Perl, English, syntax for Scheme and shells (was Re: scsh in scm ...)
In-Reply-To: djello@well.sf.ca.us's message of 4 Jan 1996 10:49:23 GMT
Message-ID: <GUNTER.96Jan9001201@netcom2.netcom.com>
Sender: gunter@netcom2.netcom.com
Organization: NETCOM On-line services
References: <qijzqcm3nz9.fsf@lambda.ai.mit.edu> <4bjskn$o6b@jive.cs.utexas.edu>
	<87loo1lnde.fsf@organon.serpentine.com> <1996Jan2.182220.11213@netlabs.com>
	<4cc999$424@jive.cs.utexas.edu> <4cgbbj$slm@nkosi.well.com>
Date: Tue, 9 Jan 1996 08:12:01 GMT
Lines: 34


In article <4cgbbj$slm@nkosi.well.com> djello@well.sf.ca.us (Darius Bacon) writes:


   Paul Wilson proposed a syntax for shell programming:
   >   1. Common special forms like IF use balanced keywords (maybe palindromic,
   >      as above, maybe not) which act as implicit parentheses as well as
   >      specifying which special form is meant.

   I think you can get the benefits of this idea with a loop-macro style of
   syntax, like so:

   (define (gosh wow)
	 (let (x = (* wow wow))
		  (y = 42)
	  in (if foo
		  then (+ x y)
		  else (- x))))

In Haskell, this is:
  gosh wow =  let x = wow * wow
                  y = 42
              in if foo
                 then x + y
                 else (- x)

I believe Haskell is worth checking out if you're designing a syntax
(or any other aspect of a language, really.)  One good starting point
for more info is:
  http://www.cs.yale.edu/HTML/YALE/CS/haskell/yale-fp.html

		cheers,
		mike gunter
	 
