From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.help Subject: Re: Emacs history, and "Is Emacs difficult to learn?" Date: Thu, 01 Aug 2013 16:39:08 +0200 Organization: Aioe.org NNTP Server Message-ID: <871u6dpjar.fsf@VLAN-3434.student.uu.se> 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> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1375368087 21843 80.91.229.3 (1 Aug 2013 14:41:27 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 1 Aug 2013 14:41:27 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Thu Aug 01 16:41:31 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 1V4u38-0007Vf-Gi for geh-help-gnu-emacs@m.gmane.org; Thu, 01 Aug 2013 16:40:18 +0200 Original-Received: from localhost ([::1]:38895 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V4u37-0008VD-UZ for geh-help-gnu-emacs@m.gmane.org; Thu, 01 Aug 2013 10:40:17 -0400 Original-Path: usenet.stanford.edu!news.kjsl.com!feeder.erje.net!eu.feeder.erje.net!newsfeed.datemas.de!rt.uk.eu.org!aioe.org!.POSTED!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 48 Original-NNTP-Posting-Host: SWN/nubmpQxYKwY7hPy4YA.user.speranza.aioe.org Original-X-Complaints-To: abuse@aioe.org User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.4 (gnu/linux) X-Notice: Filtered by postfilter v. 0.8.2 Cancel-Lock: sha1:Ni8lWjvAfA/kcR9gZj8TPkAfd08= Original-Xref: usenet.stanford.edu gnu.emacs.help:200357 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:92624 Archived-At: Rustom Mody writes: > The reason to make this distinction. Consider this C type: > struct S { T x; struct S *a, *b; } > > Does this type represent a doubly linked list of Ts or a binary > tree of Ts? > > The fact that it could be both (or something still different) > implies that C does not have the tools for building genuine data > structures, just for memory layouting. Are you saying: C doesn't have hash tables, search trees, etc., you have to make them yourself with data types and pointers, and put them into structs, and then have the algorithm traverse them, and all this you do manually, with no support from the language? It doesn't surprise me one bit that Haskell has all that fancy stuff, because Haskell is much, much more recent, and with a strong (the strongest?) tilt towards university people (of CS *and* math), while C is something that were/is very robust in practice, and is "engineering" in nature (as opposed to scientific). Even their *names* illustrate this. C is C because its predecessor was B. Haskell is Haskell because of a math (?) guy who did function theory. Haskell people have neurotic hangups how thing "should" be, especially with respect to side-effect: they even separate the "pure" (yuk) part of their programs, so it shouldn't intermingle with all those toxic side-effects. C people are more like, if it works, that's the definition of a good program. But what about *Lisp*? Lisp has lists, obviously, which can be made into association lists, and just about anything else. Is there anything more that didn't meet my eyes? Yes, a struct is just a memory pattern. You are saying, a Lisp list isn't - is it moving around in memory, is it fragmented, or is allocation made dynamically based on the elements? Is that the difference? With pointers, isn't that what you get in C? Please explain. -- Emanuel Berg - programmer (hire me! CV below) computer projects: http://user.it.uu.se/~embe8573 internet activity: http://home.student.uu.se/embe8573