From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Drew Adams Newsgroups: gmane.emacs.help Subject: RE: Emacs history, and "Is Emacs difficult to learn?" Date: Thu, 1 Aug 2013 09:18:03 -0700 (PDT) Message-ID: <3e87beb1-891f-433d-b2be-4a9004f8f4a2@default> References: <87y58pplcp.fsf@VLAN-3434.student.uu.se> <87fvuwgsv0.fsf@VLAN-3434.student.uu.se> <075751cf-97a3-4d01-8fb1-4ffbc0180f3f@googlegroups.com> <878v0oxfdw.fsf@VLAN-3434.student.uu.se> <87a9l4rs76.fsf@VLAN-3434.student.uu.se> <39e6407d-c4fd-4dc1-b47f-a1ba4119c7cb@googlegroups.com> <87iozqzjjq.fsf@VLAN-3434.student.uu.se> <871u6dpjar.fsf@VLAN-3434.student.uu.se> <14bebcfe-2311-4bb3-8154-4cc803962c71@googlegroups.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1375374488 2339 80.91.229.3 (1 Aug 2013 16:28:08 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 1 Aug 2013 16:28:08 +0000 (UTC) To: Rustom Mody , help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Thu Aug 01 18:28:10 2013 Return-path: Envelope-to: geh-help-gnu-emacs@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 1V4vjU-00073I-R6 for geh-help-gnu-emacs@m.gmane.org; Thu, 01 Aug 2013 18:28:08 +0200 Original-Received: from localhost ([::1]:54239 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V4vjU-0001xe-Ew for geh-help-gnu-emacs@m.gmane.org; Thu, 01 Aug 2013 12:28:08 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:36372) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V4vjD-0001si-Lu for help-gnu-emacs@gnu.org; Thu, 01 Aug 2013 12:27:58 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V4vZo-0002AX-Ht for help-gnu-emacs@gnu.org; Thu, 01 Aug 2013 12:18:15 -0400 Original-Received: from aserp1040.oracle.com ([141.146.126.69]:41228) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V4vZo-0002A0-7s for help-gnu-emacs@gnu.org; Thu, 01 Aug 2013 12:18:08 -0400 Original-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94]) by aserp1040.oracle.com (Sentrion-MTA-4.3.1/Sentrion-MTA-4.3.1) with ESMTP id r71GI5PK021517 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 1 Aug 2013 16:18:06 GMT Original-Received: from userz7021.oracle.com (userz7021.oracle.com [156.151.31.85]) by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id r71GI4aJ012543 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 1 Aug 2013 16:18:05 GMT Original-Received: from abhmt114.oracle.com (abhmt114.oracle.com [141.146.116.66]) by userz7021.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id r71GI4F9015144; Thu, 1 Aug 2013 16:18:04 GMT In-Reply-To: <14bebcfe-2311-4bb3-8154-4cc803962c71@googlegroups.com> X-Priority: 3 X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.7 (607090) [OL 12.0.6668.5000 (x86)] X-Source-IP: ucsinet22.oracle.com [156.151.31.94] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-Received-From: 141.146.126.69 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:92632 Archived-At: > And so assignment disappearing from C to haskell makes haskell programmer= s > able to have better thoughts [Well they say 100% of the time; I say 80% o= f > the time ;-) ] See John Hughes's classic paper, "Why Functional Programming Matters", 1984= : http://www.cs.kent.ac.uk/people/staff/dat/miranda/whyfp90.pdf >From the Introduction: "The special characteristics and advantages of functional programming are = often summed up more or less as follows. Functional programs contain no assignm= ent statements, so variables, once given a value, never change. More generall= y, functional programs contain no side-effects at all.... Such a catalogue of "advantages" is all very well, but one must not be su= rprised if outsiders don't take it too seriously. It says a lot about what functi= onal programming is not (it has no assignment, no side effects, no flow of con= trol) but not much about what it is. The functional programmer sounds rather li= ke a medieval monk, denying himself the pleasures of life in the hope that it = will make him virtuous. To those more interested in material benefits, these "advantages" are not very convincing.... It is a logical impossibility to make a language more powerful by omittin= g features, no matter how bad they may be.... Even a functional programmer should be dissatisfied with these so-called advantages, because they give him no help in exploiting the power of functional languages. One cannot write a program which is particularly la= cking in assignment statements, or particularly referentially transparent. Ther= e is no yardstick of program quality here, and therefore no ideal to aim at." That motivates the paper, but the paper itself is about why functional programming really *does* matter: what it offers that is additional and dif= ferent, and not just what it omits or avoids. I heartily recommend it. (http://www.emacswiki.org/emacs/DrewAdams#WhyFunctionalProgrammingMatters)