From: Emanuel Berg <embe8573@student.uu.se>
To: help-gnu-emacs@gnu.org
Subject: Re: never use `eval' (was: Re: How to mapcar or across a list?)
Date: Fri, 17 Jul 2015 02:55:27 +0200 [thread overview]
Message-ID: <87fv4niow0.fsf@nl106-137-147.student.uu.se> (raw)
In-Reply-To: 87zj2w29ch.fsf@nl106-137-147.student.uu.se
Remember when I said the byte compiler should be more
offensive and offer more elaborate style warnings?
And this is a good example of that!
Even in the Emacs help
(describe-function 'eval)
it doesn't say anything about the dangers of the
"nil environment":
Evaluate FORM and return its value.
If LEXICAL is t, evaluate using lexical scoping.
LEXICAL can also be an actual lexical environment,
in the form of an alist mapping symbols to
their value.
This book -
@book{artificial-intelligence-and-the-design,
title = {Artificial Intelligence and the Design of Expert Systems},
author = {George Luger and William Stubblefield},
publisher = {Benjamin-Cummings},
year = 1989,
ISBN = 0805301399
}
- has a chapter on LISP. One of the first things
they mention is `eval', and they mention it in
connection to the `quote', eval "undoing" quote so you
get the feeling it is as indispensible. There are
several examples using it.
Their other LISP isn't that good either by the way.
There are several examples where they do (car l)
several times in one execution branch instead of
`let'ing it be a local identifier; and, they speak
appreciatively of all the different types of recursion
(tail etc.) but at least so far hasn't mentioned (and
will they?) anything of the drawbacks of recursion in
terms of efficiency. (When I started out with Lisp,
coming "closest" from SML of the languages I did
then, I did recursion all the time by the way.)
--
underground experts united
http://user.it.uu.se/~embe8573
next prev parent reply other threads:[~2015-07-17 0:55 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-15 20:14 How to mapcar or across a list? Marcin Borkowski
2015-07-15 20:42 ` Rasmus
2015-07-15 20:55 ` Marcin Borkowski
2015-07-15 22:21 ` Emanuel Berg
2015-07-15 22:21 ` John Mastro
[not found] ` <mailman.6977.1436998965.904.help-gnu-emacs@gnu.org>
2015-07-15 22:28 ` Pascal J. Bourguignon
2015-07-15 22:36 ` Emanuel Berg
2015-07-15 22:57 ` never use `eval' (was: Re: How to mapcar or across a list?) Emanuel Berg
2015-07-15 23:27 ` John Mastro
2015-07-15 23:57 ` Emanuel Berg
2015-07-16 0:18 ` John Mastro
[not found] ` <mailman.6984.1437004760.904.help-gnu-emacs@gnu.org>
2015-07-16 0:04 ` Barry Margolin
[not found] ` <mailman.6982.1437001117.904.help-gnu-emacs@gnu.org>
2015-07-16 0:01 ` Barry Margolin
2015-07-16 1:13 ` Emanuel Berg
2015-07-17 0:55 ` Emanuel Berg [this message]
[not found] ` <mailman.7027.1437094623.904.help-gnu-emacs@gnu.org>
2015-07-17 1:39 ` never use `eval' Pascal J. Bourguignon
2015-07-17 2:16 ` Emanuel Berg
2015-07-17 8:36 ` Barry Margolin
2015-07-17 8:55 ` Pascal J. Bourguignon
2015-07-16 0:22 ` Pascal J. Bourguignon
2015-07-16 1:11 ` Emanuel Berg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87fv4niow0.fsf@nl106-137-147.student.uu.se \
--to=embe8573@student.uu.se \
--cc=help-gnu-emacs@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.