[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Using setq to obtain a symbol from a list, so that I can assign a funct
From: |
srinik001 |
Subject: |
Using setq to obtain a symbol from a list, so that I can assign a function to it |
Date: |
Mon, 21 Apr 2008 19:28:03 -0700 (PDT) |
User-agent: |
G2/1.0 |
Hello,
I would really appreciate some help on this. I am trying to do just
about everything with Emacs (and Emacs Lisp) these days. One of the
things I need to do in my job is to create XML files. I thought I
would use Emacs rather than some other editor/tool.
So, I am trying to write a tool that will enable me to write specific
XML files by prompting me to enter values. Here is how I am trying to
do it.
First, I set a variable that will provide a "grammar" for my file that
Emacs will help me write. An example is the following : of course, my
actual problem is not about generating English sentences; this is just
for illustration.
(setq grammar '((sentence <- subject predicate)
(subject <- article noun)
(predicate <- verb)))
I expect to generate functions that look like this:
(defun sentence()
(........some stuff .........)
(subject)
(predicate)
(........some stuff again...))
What I want the system to do is to generate the function
automatically. So, I should have functions for sentence, subject and
predicate. I will of course hand-code the functions for article, noun
and verb.
I don't want to write the above defun; I want to generate it by using
(setq sentence #'(lambda() ( (subject) (predicate)))). Of course,
instead of "sentence". I want to use (car x) or something like that by
reading the variable "grammar".
Here is the problem: when I do this:
(setq (car (expression that generates sentence) #'(lambda() (print
"hello")))
I get an error.
But if I do a (setq x (car ... ) to get the sentence symbol and THEN
assign it, everything works.
Is there something fundamental I am missing?
Thanks,
Regards,
SK