From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.devel Subject: Re: Sweeter Emacs Lisp Date: Wed, 17 Jul 2013 19:07:51 +0400 Message-ID: <87sizd8bso.fsf@yandex.ru> References: <8738rh6ftk.fsf@gnu.org> <87r4f0wlug.fsf@yandex.ru> <8738rgtnwn.fsf@uwakimon.sk.tsukuba.ac.jp> <51E5ABC1.5040002@yandex.ru> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1374073719 11787 80.91.229.3 (17 Jul 2013 15:08:39 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 17 Jul 2013 15:08:39 +0000 (UTC) Cc: fgallina@gnu.org, "Stephen J. Turnbull" , emacs-devel To: Lars Magne Ingebrigtsen Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Jul 17 17:08:41 2013 Return-path: Envelope-to: ged-emacs-devel@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 1UzTLM-0008Mi-TY for ged-emacs-devel@m.gmane.org; Wed, 17 Jul 2013 17:08:41 +0200 Original-Received: from localhost ([::1]:40637 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UzTLM-00042J-Ae for ged-emacs-devel@m.gmane.org; Wed, 17 Jul 2013 11:08:40 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:36523) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UzTKV-0003D5-2d for emacs-devel@gnu.org; Wed, 17 Jul 2013 11:07:51 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UzTKQ-0000hC-6L for emacs-devel@gnu.org; Wed, 17 Jul 2013 11:07:47 -0400 Original-Received: from mail-la0-x236.google.com ([2a00:1450:4010:c03::236]:50598) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UzTKP-0000gq-Ur; Wed, 17 Jul 2013 11:07:42 -0400 Original-Received: by mail-la0-f54.google.com with SMTP id ec20so1624960lab.27 for ; Wed, 17 Jul 2013 08:07:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type:x-antivirus:x-antivirus-status; bh=pbcQKgH81lJ+K2QojBmdNBCEHqYBPweHpEZsYlNSsXk=; b=WyDTDAEgz/BmWiPyerunFYDw0rjNqqfWMKHrcagUOMq01YNjQzzsIyVdQgclLbpYQL 2GZ26tl4hEGjClSeSkSLq4Cy2b0jEw2WCLiQsbtTMZ2+d6ZUuDy1ypSWgf2HYcx2xSph A/lZ0HcomAPfmoOXCX7KTq0l7pzIht5kUU7EQT9qR0HnhgrGt/zQWwfPkqpZimdjsu6f bJ/6U/789/oEXe9//+NBkNGSLvG3r7/7rY2iSFqcuKE2+kEQulPVP8xJnhTVbVTP/mon Ee7yOgd9VKaozhdt/vHplgPTX8cqV2xgagG9O7LnlBcyCs4bpd+jI/uNzZKOuKm2PWij aCaA== X-Received: by 10.152.6.4 with SMTP id w4mr3192056law.14.1374073660394; Wed, 17 Jul 2013 08:07:40 -0700 (PDT) Original-Received: from SOL ([178.252.98.87]) by mx.google.com with ESMTPSA id rx1sm2960251lbb.0.2013.07.17.08.07.38 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 17 Jul 2013 08:07:39 -0700 (PDT) In-Reply-To: (Lars Magne Ingebrigtsen's message of "Wed, 17 Jul 2013 16:04:41 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (windows-nt) X-Antivirus: avast! (VPS 130717-0, 17.07.2013), Outbound message X-Antivirus-Status: Clean X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:4010:c03::236 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:161977 Archived-At: Lars Magne Ingebrigtsen writes: > I've never understood what people mean by "reading from the inside out". > In C, that statement would have been > > upcase(replace_regexp_in_string("[<\\/> ]", "", car(tag))); > > Of course, if you've only programmed dotted languages like Java, you may > have a problem. (That goes without saying in any context, though.) You know, Java also has method calls with implicit receiver (self). > There's a cultural element, though. C people have a tendency to assign > values to variables more, so you get a more imperative style. If a variable is assigned only once, it's not necessarily imperative style. But yes, this is the tendency, and in this case, to follow the control flow you can read the code from top to bottom, and the nested calls, while common, are usually relatively simple. > Yeah. that's pretty much incomprehensible and confirms my prejudices > against the taste level of the Clojure people. Are you sure they > haven't managed to squeeze monads into the language, too? For extra > academic brownie points? Only in contrib: http://richhickey.github.io/clojure-contrib/monads-api.html > I love how Emacs Lisp (and Common Lisp) eschew all these syntactical > tricks. They have dead simple syntaxes, and makes reading code clear > and easy. You get constructs that are unambiguous and general, even > though they're somewhat longer than Perly stuff like the above. I find that code rather readable and extensible enough (even when you come back to it a few weeks later), and these would be the common criticisms of Perl.