From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Xah Lee Newsgroups: gmane.emacs.help Subject: Re: About Emacs Modernisation Project Date: Tue, 1 Jun 2010 23:17:56 -0700 (PDT) Organization: http://groups.google.com Message-ID: References: <143c6d28-4423-4e43-9fc5-c0fb3340043b@c11g2000vbe.googlegroups.com> <0e994fe3-6dde-449f-879d-6701c7a195a9@e28g2000vbd.googlegroups.com> <8639x7x3jj.fsf@gmail.com> <87iq63wsvt.fsf@kuiper.lan.informatimago.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1291826557 16737 80.91.229.12 (8 Dec 2010 16:42:37 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 8 Dec 2010 16:42:37 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Wed Dec 08 17:42:33 2010 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 1PQN65-0007SC-CJ for geh-help-gnu-emacs@m.gmane.org; Wed, 08 Dec 2010 17:42:29 +0100 Original-Received: from localhost ([127.0.0.1]:39168 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PQN64-0005CX-MC for geh-help-gnu-emacs@m.gmane.org; Wed, 08 Dec 2010 11:42:28 -0500 Original-Path: usenet.stanford.edu!postnews.google.com!q39g2000prh.googlegroups.com!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 102 Original-NNTP-Posting-Host: 76.102.12.87 Original-X-Trace: posting.google.com 1275459476 24389 127.0.0.1 (2 Jun 2010 06:17:56 GMT) Original-X-Complaints-To: groups-abuse@google.com Original-NNTP-Posting-Date: Wed, 2 Jun 2010 06:17:56 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: q39g2000prh.googlegroups.com; posting-host=76.102.12.87; posting-account=bRPKjQoAAACxZsR8_VPXCX27T2YcsyMA User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.55 Safari/533.4, gzip(gfe) Original-Xref: usenet.stanford.edu gnu.emacs.help:178556 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:75634 Archived-At: On May 31, 4:31=C2=A0pm, p...@informatimago.com (Pascal J. Bourguignon) wrote: > Alessandro Piras writes: > > LanX writes: > > >> Hi > > >> I doubt that Python would be a good choice, Perl for instance has much > >> more in common with LISP. > > >> And I doubt that eLISP is the reason why many people have problems > >> with emacs, it's more that many "modern" GUI mechanisms and > >> terminologies are not default in emacs, which frustrates newbies. > > >> IMHO an alternative (but compatible ) eLISP-dialect simply allowing to > >> swap parens and functionnames and to write "message(...)" instead of > >> "(message...)" would increase the acceptance immidiately. > > > Sounds Like M-expressions. It has been tried in the past in the Lisp wo= rld, > > without much success. Most programmers realize after few time the > > sweetness of S-expressions and macros. I think it would just lead to a > > small amount of M-expressions code that would be soon refactored as > > S-expressions.. Not worth the effort I suspect. > > This is important to understand. > > Asking to write =C2=A0 function(argument) =C2=A0in lisp, is like asking t= o write: > > =C2=A0 =C2=A0int a[]=3D1{2,3,4}; > > in C. > > Yes, 1{2,3,4} =C2=A0instead of {1,2,3,4} is totally silly in C. =C2=A0Why= would > you want to put the first element of a list of values outside of the > list? > > It just happen that code is data and there is no more any point in > putting the first element of a function application outside of the > list. > > f(a,b,c) goes in most languages, because they make an artificial > distinction between code and data, and the implication of this is that > they need big parsers, and cannot mix compilation time with run time. > > But in lisp, since we write (f a b c) like we write (1 2 3 4), the > parser becomes trivial, and the code can be processed as easily as any > other data, therefore we can write macros (which are compiler hooks) > and use the compiler at run-time. > > This feature is called "homoiconicity". The above opinion is biased and basically bullshit. The throwing in of the jargon homoiconicity is just to a sales pitch. if you read Wikipedia: http://en.wikipedia.org/wiki/Homoiconicity you see this paragraph: --------------- Languages which are considered to be homoiconic include members of the Lisp family, Nemerle, Curl, REBOL, SNOBOL, XSLT, XQuery, TRAC, Tcl, Io, Ioke, Joy, Factor, Pico, PostScript, Prolog, R, Mathematica, V and Clojure.[citation needed] In Von Neumann architecture systems (including the vast majority of general purpose computers today), raw machine code also has this property, the data type being bytes in memory. ---------------- So, this =E2=80=9Chomoiconicity=E2=80=9D has little to do with lisp's synta= x or whatever it is supposed to be relevant. also, note that XML also has lisp's advantage of regular syntax, and there are computing langs based on xml syntax today. Note that lisp syntax is not strictly regular. For a more regular syntax, there's XML and Mathematica. also, the oft quoted concept of =E2=80=9Ccode is data=E2=80=9D is seldom ev= er defined. When asked a lisp, each has different take. Basically, it means nothing more than a strictly uniform and regular syntax, which lisp's isn't the better example among languages. another thing lisp lovers inevitable love to cite is macros. Note that, a whole class of languages that are based on pattern matching, is a order of magnitude more powerful than classic lisps. For detail, see: =E2=80=A2 Fundamental Problems of Lisp http://xahlee.org/UnixResource_dir/writ/lisp_problems.html Xah =E2=88=91 http://xahlee.org/ =E2=98=84