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

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

Re: Fascinating interview by Richard Stallman on Russia TV


From: Julian Bradfield
Subject: Re: Fascinating interview by Richard Stallman on Russia TV
Date: Wed, 08 Dec 2010 15:19:20 -0000
User-agent: slrn/0.9.9p1 (Linux)

On 2010-07-18, Emmy Noether <emmynoether3@gmail.com> wrote:
> DEFUN ("or", For, Sor, 0, UNEVALLED, 0,
>   "Eval args until one of them yields non-NIL, then return that value.
> \n\
> The remaining args are not evalled at all.\n\
> If all args return NIL, return NIL.")
>   (args)
>      Lisp_Object args;
> {
>   register Lisp_Object val;
>   Lisp_Object args_left;
>   struct gcpro gcpro1;
>
>   if (NULL(args))
>     return Qnil;
>
>   args_left = args;
>   GCPRO1 (args_left);
>
>   do
>     {
>       val = Feval (Fcar (args_left));
>       if (!NULL (val))
>         break;
>       args_left = Fcdr (args_left);
>     }
>   while (!NULL(args_left));
>
>   UNGCPRO;
>   return val;
> }
>
> I saw that on comp.lang.c and found no one capable of explaining it.

What do you need explained? Other than what's already in the manual
(Gnu Emacs Internals section of the Elisp manual.)

> And where does the manual explain the C struct or ADT of the basic
> cons cell ? which file has the definition ? where is his eval_quote
> function definition ?

Try lisp.h
RMS doesn't really believe in ADTs - that's one of the main complaints
from XEmacs.
As for finding functions, I believe Emacs has commands to help with
that, but personally I just go grep eval_quote *.c


reply via email to

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