From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "P.M.Lawrence" Newsgroups: gmane.emacs.help Subject: Re: How to improve the readability of (any) LISP or any highlevel functional language to the level of FORTH ? Date: Tue, 4 Jan 2011 06:14:49 -0800 (PST) Organization: http://groups.google.com Message-ID: <129ea0bd-4dc9-42dc-83b5-02846381744d@29g2000prb.googlegroups.com> References: <80ceeca0-1d32-47d1-ba96-feb4d9729c3a@v17g2000yqv.googlegroups.com> <697f9c5f-ad7f-4c63-8e8f-a410091a09f1@r19g2000prm.googlegroups.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1294158192 25060 80.91.229.12 (4 Jan 2011 16:23:12 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Tue, 4 Jan 2011 16:23:12 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Tue Jan 04 17:23:07 2011 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Pa9f9-000855-8R for geh-help-gnu-emacs@m.gmane.org; Tue, 04 Jan 2011 17:23:07 +0100 Original-Received: from localhost ([127.0.0.1]:44466 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Pa9f8-0001u7-DG for geh-help-gnu-emacs@m.gmane.org; Tue, 04 Jan 2011 11:23:06 -0500 Original-Path: usenet.stanford.edu!postnews.google.com!29g2000prb.googlegroups.com!not-for-mail Original-Newsgroups: comp.lang.functional, comp.lang.lisp, gnu.emacs.help, comp.lang.forth, comp.lang.prolog Original-Lines: 31 Original-NNTP-Posting-Host: 203.194.52.31 Original-X-Trace: posting.google.com 1294150497 29630 127.0.0.1 (4 Jan 2011 14:14:57 GMT) Original-X-Complaints-To: groups-abuse@google.com Original-NNTP-Posting-Date: Tue, 4 Jan 2011 14:14:57 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: 29g2000prb.googlegroups.com; posting-host=203.194.52.31; posting-account=e84OQAoAAACLKqJfxrxmVXjY7apHUUxL User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko/2009032711 Ubuntu/8.04 (hardy) Firefox/3.0.8,gzip(gfe) Original-Xref: usenet.stanford.edu comp.lang.functional:69110 comp.lang.lisp:297250 gnu.emacs.help:183971 comp.lang.forth:160329 comp.lang.prolog:44036 X-Mailman-Approved-At: Tue, 04 Jan 2011 11:19:43 -0500 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:78175 Archived-At: pineapple wrote: > On Jan 1, 2:04=A0pm, girosenth wrote: > > > Is there a postfix functional language that also gets rid of parens > > and is not as primitive as FORTH or POSTSCRIPT ? > > Joy. > > http://en.wikipedia.org/wiki/Joy_(programming_language) Not quite; that does use bracketing around chunks of code, as much as anything for quoting purposes to allow lazy evaluation. The problem with a completely postfix notation for a functional language is that parameters are evaluated as they turn up, without regard to the operation that needs them (as, without lookahead that would destroy the gains from postfix notation, it isn't yet known what will be needed). That appears to enforce strict evaluation, unless the postfix notation is loosened with some quoting system. However, I did some work on this myself for my Furphy project (see http://users.beagle.com.au/peterl/furphy.html - but so far it's only a prototype/testbed, and still quite "primitive"). I found an indirection mechanism that gave lazy evaluation without a quoting system, which I implemented with the complementary keywords FREEZE and THAW. Even so, a quoting system is so convenient that I added one back in - only, now it is a layer of syntactic sugar rather than an alternative treatment of the source. I wanted to avoid that alternative treatment so that inconsistencies wouldn't develop from going in and out of postfix notation - I was even able to make keyword naming postfix. P.M.Lawrence.