help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: why are there [v e c t o r s] in Lisp?


From: Robert Thorpe
Subject: Re: why are there [v e c t o r s] in Lisp?
Date: Sun, 18 Oct 2015 22:17:30 +0100

Emanuel Berg <embe8573@student.uu.se> writes:
> Now that I know it isn't so I don't think the
> syntax is bad. Actually, I'm curious about CL and
> using the industrial Lisps to do "real" programs,
> where types, data structures, memory usage, come to
> play once again.

There's one thing that Pascal didn't mention directly....  In some cases
having literal syntax in Lisp is more important than in other
languages.  In Lisp we have the function "read" which can read in
anything that has a read syntax.  Let's say you have a program that has
an data file format.  That file can be stored using "print" and
read-back using "read".  For example, configuration could be stored as a
list.  That list could contain other lists, strings and vectors.  Read
and print eliminate the need to write a parser.  As a side-effect they
may make the file human readable.  That makes having a vector or array
syntax more useful.  Let's say the program is a CAD package and it's
storing a 3D model.  That would use a lot of arrays.  If Lisp had no
literal array syntax then lists would have to be used, then converted to
arrays later.  That could be very inefficient for large models.

Another issue is code generators.  Often they produce tables that are
best stored in arrays.  Take parser generators for example.  Let's say a
lisp dialect has the syntax (v '(1 2 3)).  The function "v" means turn
the following list into an array.  For human usage that would be fine,
the delay in translating lists to arrays would be small.  But, for
generated code it could be a problem.  Last time I looked, the parser
generators for C++ used C arrays because C++ lacks literal array syntax
for C++ arrays.

BR,
Robert Thorpe



reply via email to

[Prev in Thread] Current Thread [Next in Thread]