[Top][All Lists]

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

RE: How to quote a list of functions?

From: Drew Adams
Subject: RE: How to quote a list of functions?
Date: Mon, 17 Aug 2015 18:54:22 -0700 (PDT)

> when and why are functions refered to not
> using symbols to designate them?

Anonymous functions.

In Emacs Lisp, a named function is named by a symbol.

In Common Lisp, a named function is named by either a symbol
or a list of the form `(setf SYMBOL)'.

> Isn't the most natural way to refer to a function (or
> anything else) just to type its name?

Natural?  Please take a poll of the biomass, and get back to us.

> What are we gaining from having people and not
> computers deal with this distinction?

A function has other aspects (signature, in particular),
besides it name.

Just as a symbol has aspects (variable value, plist) other
than its name and its function value.

What do we "gain" by such distinctions?

The distinctions are not just mental constructs; they are
real - real distinctions wrt behavior.

In the case of people, it's observable behavior that we
care about.  We typically don't care about all of the
computer-level behavior.  But we do care about behavior
distinctions because we make use of them.

We can make _use_ of the different aspects of functions,
symbols, whatever.  You ignore such differences at your
own peril.  Or to be less dramatic: it's your loss.

Ignoring that there are different aspects means ignoring
what a Lisp function (or symbol or whatever) _is_, which
also means ignoring what it can be used for and how it
can be used.

In Lisp, in particular, you can treat `(lambda (x) (* x 2))'
as a list, in addition to treating it as a function.  It
has different behaviors depending on what you do with it.

Likewise, a symbol such as `car'.  Now it's a function;
now it's a variable; now it's neither; now it's an object
with a plist attribute.

Lisp lets you have your cake and eat it too.  If you
don't want to eat it, that's up to you.

reply via email to

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