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: why are there [v e c t o r s] in Lisp? Date: Sat, 17 Oct 2015 01:46:30 +0200 Message-ID: <87d1wepeax.fsf@debian.uxu> References: <87mvvjeg29.fsf@kuiper.lan.informatimago.com> <87eggvebfs.fsf@kuiper.lan.informatimago.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1445038680 11583 80.91.229.3 (16 Oct 2015 23:38:00 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 16 Oct 2015 23:38:00 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sat Oct 17 01:37:47 2015 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 1ZnEZE-0003B4-JJ for geh-help-gnu-emacs@m.gmane.org; Sat, 17 Oct 2015 01:37:44 +0200 Original-Received: from localhost ([::1]:56327 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZnEZD-0001p3-TP for geh-help-gnu-emacs@m.gmane.org; Fri, 16 Oct 2015 19:37:43 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:52817) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZnEYv-0001ol-6K for help-gnu-emacs@gnu.org; Fri, 16 Oct 2015 19:37:26 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZnEYr-00040X-41 for help-gnu-emacs@gnu.org; Fri, 16 Oct 2015 19:37:25 -0400 Original-Received: from plane.gmane.org ([80.91.229.3]:35203) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZnEYq-0003z8-Tc for help-gnu-emacs@gnu.org; Fri, 16 Oct 2015 19:37:21 -0400 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1ZnEYn-0002eV-Uo for help-gnu-emacs@gnu.org; Sat, 17 Oct 2015 01:37:18 +0200 Original-Received: from nl106-137-244.student.uu.se ([130.243.137.244]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 17 Oct 2015 01:37:17 +0200 Original-Received: from embe8573 by nl106-137-244.student.uu.se with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 17 Oct 2015 01:37:17 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Original-Lines: 49 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: nl106-137-244.student.uu.se Mail-Copies-To: never User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) Cancel-Lock: sha1:GIWRcOaxWc970Qoc4jx4e1vBgFY= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 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:107683 Archived-At: "Pascal J. Bourguignon" writes: > Now, concerning the use of lists vs. strings, you > answered the question of why the special syntax > yourself. to make it more readable. With lists and strings this makes sense but with vectors it is only more readable in the face of all the surrounding Lisp, which otherwise would look the same, because in isolation a parenthesised vector is just as readable as one in square brackets. But they aren't used in isolation but indeed amid Lisp so yes, the special syntax makes it more readable by just a bit. Again, especially if combined with a special vector highlight. Why the syntax is there at all is to provide fast (faster) access to the vector data type which has other time and space properties than do lists. Because in the "platonic" sense, as Random put it, there aren't any differences between lists and vectors, at least not between lists which carry data of a uniform type (e.g., a bunch of integers), so this difference is on the implementation side where vectors are allocated in cohesive memory which, because the uniform type and total length are known, it makes for constant access time. > Now, nothing prevents you to travel back to 1960 ... Save for physics, I'd go in a heartbeat... Only I'd put a blind eye to the politics, hallucinogens and computer infancy are sure appealing enough. > Notice by the way that in emacs lisp, we lack > structure types. We can still implement them using > vectors (or lists), and write program using the > structure abstraction. If you want to write programs > using vector or string abstractions without using > actual vector or string type objects you can do so. Yeah, all the math stuff would be just as easy to do with lists. It is the computer stuff with memory access O(whatever) that is the difference. -- underground experts united http://user.it.uu.se/~embe8573