From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Jan Burse 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: Fri, 21 Jan 2011 17:15:52 +0100 Organization: albasani.net Message-ID: References: <80ceeca0-1d32-47d1-ba96-feb4d9729c3a@v17g2000yqv.googlegroups.com> <5121f8b1-a8d2-4587-a45e-387469762668@m13g2000yqb.googlegroups.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: dough.gmane.org 1295628064 19867 80.91.229.12 (21 Jan 2011 16:41:04 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 21 Jan 2011 16:41:04 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Fri Jan 21 17:41:00 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 1PgK2l-0003Gk-Nh for geh-help-gnu-emacs@m.gmane.org; Fri, 21 Jan 2011 17:40:59 +0100 Original-Received: from localhost ([127.0.0.1]:60536 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PgK2l-0000Ff-3M for geh-help-gnu-emacs@m.gmane.org; Fri, 21 Jan 2011 11:40:59 -0500 Original-Path: usenet.stanford.edu!news.tele.dk!news.tele.dk!small.news.tele.dk!news-2.dfn.de!news.dfn.de!newsfeed.straub-nv.de!news.albasani.net!not-for-mail Original-Newsgroups: comp.lang.functional, comp.lang.lisp, gnu.emacs.help, comp.lang.forth, comp.lang.prolog Original-Lines: 58 Original-X-Trace: news.albasani.net sqJ7ZHIDbv6j687LqD16NWBXeiWTzYuA31BTii9eYkfxbJYAQtSyY2KWjywa7cOiEjexWpM/HOMf16cafkqDe3C/iRoLyVJCRzykK3uV63BSNCxpgxIUPyrFdGpgJltD Original-NNTP-Posting-Date: Fri, 21 Jan 2011 16:15:52 +0000 (UTC) In-Reply-To: <5121f8b1-a8d2-4587-a45e-387469762668@m13g2000yqb.googlegroups.com> Cancel-Lock: sha1:SKeu7SNq1pbi0lCNMDiH+XWrSf4= User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.1.16) Gecko/20101123 SeaMonkey/2.0.11 Injection-Info: news.albasani.net; logging-data="/jF3ikBqMvS9uhvu/Kp0dRBv+vSXdtZmZ7B8WlPklXzYlaTYaQPYz4TKrNYWQ5vK6YJA8oYflKt+jkprmbRTLExKkOqnL/44CHs6nP8WAPXyL6huMRiUWVXPnKUh+u2k"; mail-complaints-to="abuse@albasani.net" Original-Xref: usenet.stanford.edu comp.lang.functional:69188 comp.lang.lisp:297752 gnu.emacs.help:184492 comp.lang.forth:160554 comp.lang.prolog:44103 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:78651 Archived-At: I am voting for RPL: http://en.wikipedia.org/wiki/RPL_(programming_language) m_l_g3 schrieb: > On Jan 1, 10:04 am, girosenth wrote: >> How to improve the readability of (any) LISP or any highlevel >> functional language to the level of FORTH ? > > ... >> >> How do you make it readable ? > ... >> >> (f (g (h (j (k (l ops)))...))) > > (e > (f > (g (h i) > (j k l) > ) > (m (n o (p q)) > (r (s t) u) > ) ) ) > > The rule: if you don't see the closing paren moving the eyes down, > it's on the right. > But it either to the right or down, no other option. > > Since closing parens are visually identical, there's no need to one > line per paren; > this is shown at the last line (yes, their visual and logical > orderings are different, > but they are identical parens otherwise worth only counting!). > > > >> Is there a postfix functional language that also gets rid of parens >> and is not as primitive as FORTH or POSTSCRIPT ? > > There is a prefix/infix one: Haskell with its ($) and (.) operators > and... well... monads. > > As to Forth, you may try to layout control structures on the right, > as if RPN is not enough: > > : MAX 2dup> if > drop else > nip then > ; > > : foo > 10 0 do > i 3 mod 0= if > i . then loop > ; > >