From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Pascal J. Bourguignon" Newsgroups: gmane.emacs.help Subject: Re: why are there [v e c t o r s] in Lisp? Date: Sat, 17 Oct 2015 17:25:35 +0200 Organization: Informatimago Message-ID: <87wpulbjps.fsf@kuiper.lan.informatimago.com> References: <87mvvjeg29.fsf@kuiper.lan.informatimago.com> <87io67pmr7.fsf@debian.uxu> <87mvvjzgup.fsf@fastmail.com> <87d1wfplu5.fsf@debian.uxu> <87io67zfl0.fsf@fastmail.com> <87twpqcl8c.fsf@kuiper.lan.informatimago.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1445095836 21854 80.91.229.3 (17 Oct 2015 15:30:36 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 17 Oct 2015 15:30:36 +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 17:30:31 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 1ZnTRG-0005mp-06 for geh-help-gnu-emacs@m.gmane.org; Sat, 17 Oct 2015 17:30:30 +0200 Original-Received: from localhost ([::1]:58680 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZnTRF-0006Ws-8O for geh-help-gnu-emacs@m.gmane.org; Sat, 17 Oct 2015 11:30:29 -0400 Original-Path: usenet.stanford.edu!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 51 Original-X-Trace: individual.net qexPTUX7Zpd5XBGzUY6oeAlm6cq9ludzKVX1JRyT7GG2mNCTuJ Cancel-Lock: sha1:ZmNlNDk4OGJmOGZjMzg5NWVmN2RhODQ4ZThjMmQ5M2RkOGZhNmM4Yw== sha1:sdOTMLKIMz20Ym+Ndf8Gi5rEdlk= Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAQMAAABtzGvEAAAABlBMVEUAAAD///+l2Z/dAAAA oElEQVR4nK3OsRHCMAwF0O8YQufUNIQRGIAja9CxSA55AxZgFO4coMgYrEDDQZWPIlNAjwq9 033pbOBPtbXuB6PKNBn5gZkhGa86Z4x2wE67O+06WxGD/HCOGR0deY3f9Ijwwt7rNGNf6Oac l/GuZTF1wFGKiYYHKSFAkjIo1b6sCYS1sVmFhhhahKQssRjRT90ITWUk6vvK3RsPGs+M1RuR mV+hO/VvFAAAAABJRU5ErkJggg== X-Accept-Language: fr, es, en User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) Original-Xref: usenet.stanford.edu gnu.emacs.help:215427 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:107712 Archived-At: Emanuel Berg writes: > "Pascal J. Bourguignon" > writes: > >> In emacs lisp it'd be difficult to do it, but in >> Common Lisp it's trivial > > I didn't say I wanted strings not to be > > "strings" > > but > > '(32 9 13 105 10 103) > > But having the vector > > [1 2 3] > > as > > '(1 2 3) > > wouldn't be bad if the computer could figure out on > its own the most efficient way to store and interact > with the data. As I said, you could write a compiler performing global analysis to determine how you use a given object in the data flow, and therefore store the literal as a list or as a vector. One complication would be I/O. The data flow analysis could let the compiler determine that some object read shall be stored as a vector or as list, but the reading function wouldn't know that from the external syntax, and it would need an additionnal type parameter. Notice that this introduces some kind of static typing which is rather contrary to the lisp spirit and makes thing so bad in serializing non-lisp like languages. At this point, the best you could do is to start writing your own compiler to implement this idea, and see whether it's a good idea or not. -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk