From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Random832 Newsgroups: gmane.emacs.tangents,gmane.emacs.devel Subject: Python vs Lisp (followups to -tangents) Date: Thu, 10 Dec 2015 16:13:30 +0000 (UTC) Message-ID: References: <87io4lem98.fsf@petton.fr> <56604A9C.7080508@gmail.com> <20151208130529.GA28682@HAL9000> <1c367763-4ba1-4c65-80d1-be1b365c3b35@default> <87lh94hde0.fsf@mbork.pl> NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1449764052 9140 80.91.229.3 (10 Dec 2015 16:14:12 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 10 Dec 2015 16:14:12 +0000 (UTC) Cc: emacs-devel@gnu.org To: emacs-tangents@gnu.org Original-X-From: emacs-tangents-bounces+get-emacs-tangents=m.gmane.org@gnu.org Thu Dec 10 17:13:57 2015 Return-path: Envelope-to: get-emacs-tangents@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1a73qt-0005Bx-4V for get-emacs-tangents@m.gmane.org; Thu, 10 Dec 2015 17:13:55 +0100 Original-Received: from localhost ([::1]:42728 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a73qs-0002bL-DR for get-emacs-tangents@m.gmane.org; Thu, 10 Dec 2015 11:13:54 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:37158) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a73qp-0002ay-Vk for emacs-tangents@gnu.org; Thu, 10 Dec 2015 11:13:52 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a73qm-0002p0-02 for emacs-tangents@gnu.org; Thu, 10 Dec 2015 11:13:51 -0500 Original-Received: from plane.gmane.org ([80.91.229.3]:57305) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a73ql-0002oZ-Pa for emacs-tangents@gnu.org; Thu, 10 Dec 2015 11:13:47 -0500 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1a73qg-0004sO-8l for emacs-tangents@gnu.org; Thu, 10 Dec 2015 17:13:42 +0100 Original-Received: from c-68-39-146-59.hsd1.in.comcast.net ([68.39.146.59]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 10 Dec 2015 17:13:42 +0100 Original-Received: from random832 by c-68-39-146-59.hsd1.in.comcast.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 10 Dec 2015 17:13:42 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Followup-To: gmane.emacs.tangents Original-Lines: 31 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: c-68-39-146-59.hsd1.in.comcast.net User-Agent: slrn/pre1.0.3-7 (Linux) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 X-BeenThere: emacs-tangents@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-tangents-bounces+get-emacs-tangents=m.gmane.org@gnu.org Original-Sender: emacs-tangents-bounces+get-emacs-tangents=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.tangents:44 gmane.emacs.devel:196021 Archived-At: On 2015-12-10, Richard Stallman wrote: > I looked at this some years ago, and I concluded there is only a > little validity in it. The main essential features of Lisp are not > present in Python. For some clue of what you're talking about, your previous statement on this matter was: > I skimmed documentation of Python after people told me it was > fundamentally similar to Lisp. My conclusion is that that is > not so. `read', `eval', and `print' are all missing in Python. I must admit, I don't fully understand what you mean by this. Print is the most confusing. As a feature, Lisp's 'print' can be described as: Produce a string representation which can be read back of some objects (certainly not *all* objects - not buffers or subroutines, for example, and it's not structure-preserving for lists of lists), and display it on standard output. Python's 'repr' could be regarded as an exact match in concept for prin1-to-string, a building block from which Lisp's 'print' can be trivially made. The essential feature - that there is a way to get a string that can be read back for objects for which it is reasonable/easy - is present. Python's 'eval'/'exec' normally evaluates code directly from a string, skipping the need for 'read' entirely. However, if desired, the 'ast' module provides a rich framework for working with expression trees - the only difference is that they're built from class-based objects instead of just being a list of lists/symbols/literals.