From: Ganesh Swami <ganesh@iamganesh.com>
Cc: help-gnu-emacs@gnu.org
Subject: Learners doubt in LISP
Date: Thu, 8 Jan 2004 02:27:29 -0800 [thread overview]
Message-ID: <16381.12433.72353.855468@desktop.localhost> (raw)
In-Reply-To: <m33caqb5k4.fsf@anandpc.cc.iitm.ernet.in>
>>>>> "RM" == Rajsekar Manokaran <rajsekar_manokaran@yahoo.co.uk> writes:
RM> I have just started learning lisp. I use emacs (which was my
RM> motivation to learn LISP) to compile things.
RM> There is a function in emacs called completing-read which when
RM> passed some strings allows the user to select one string out
RM> of the many passed. I want to allow the user select a string
RM> and then use the data associated with the string.
RM> eg.
RM> (completing-read "Input: " '(("hai" 10) ("bye" 20)) nil t nil)
| C-h f assoc |----------
|
| assoc is a built-in function.
| (assoc KEY LIST)
|
| Return non-nil if KEY is `equal' to the car of an element of LIST.
| The value is actually the first element of LIST whose car equals KEY.
Real lisping:
(defun y-completing-read (x)
(cadr
(assoc
(completing-read "Input: " x nil t nil)
x)))
Better readability:
(defun my-completing-read (x)
(let ((ret (completing-read "Input: " x nil t nil)))
(cadr (assoc ret x))
))
(my-completing-read '(("hai" 10) ("bye" 20)))
cheers,
Ganesh
RM> reads allowing completions hai and bye.
RM> the nil t nil are insignificant (t - only allow things on the
RM> list).
RM> Now this thing seems to return "bye" or "hai" How do I access
RM> the 10 or 20 that comes together with it?
--
Ganesh Swami
If you want to get laid, go to school;
If you want to get educated, go to the library.
-- Frank Zappa.
prev parent reply other threads:[~2004-01-08 10:27 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-01-08 19:31 Learners doubt in LISP Rajsekar Manokaran
2004-01-08 9:22 ` Joakim Hove
2004-01-08 10:27 ` Ganesh Swami [this message]
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=16381.12433.72353.855468@desktop.localhost \
--to=ganesh@iamganesh.com \
--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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).