[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
How to remove verbosity from the data passing mechanism using alist or p
From: |
Fren Zeee |
Subject: |
How to remove verbosity from the data passing mechanism using alist or plist ? |
Date: |
Sun, 5 Dec 2010 12:15:08 -0800 |
Reading thru the various threads and replies by the luminaries of
lisp, CL, elisp, scheme,
functional programming etc.
I have decided to write a small game of following data in a buffer. At
this state I am only
readyfor the following questions. Yesterday, in my questions, I
explored how to get data
from buffer into strings.
8<-----------------------------------------------------------------------------------------------------------------
GOLD=1000
(defun find-my-marker-GOLD ()
"Starting from anywhere in the file, find my marker GOLD its value
and location."
(interactive)
(save-excursion
(save-match-data
;; Starting from the end of the file, find GOLD
;;
(goto-char (point-max))
; Go to the end of the file, and then
(search-backward-regexp "GOLD=\\([0-9]+\\)\n" nil nil nil)
; find the GOLD, and
(list
; as an a-list, return its
(list
:GOLD-value ;
value, and
(string-to-number ;
read and return it, with its
(replace-regexp-in-string "GOLD=\\([0-9]+\\)\n" "\\1" (match-string
0))))
(list
:GOLD-location ;
location.
(point) )))))
; (assoc-default :GOLD-value (find-my-marker-GOLD))
(defun test-GOLD (GOLD)
"for now, tests the alist passing mechanism, later more."
(let ((GOLD-value (car (assoc-default :GOLD-value GOLD )))
(GOLD-location (car (assoc-default :GOLD-location GOLD ))))
(list GOLD-value GOLD-location)
)
)
(test-GOLD (find-my-marker-GOLD))
8<-----------------------------------------------------------------------------------------------------------------
[Q] Are there any defects in this method of passing struct and what
improvements are possible ?
Specifically, are there ways to reduce verbosity without using cl
or staying purely in elisp ?
[Q] Is there a way to avoid lengthy calling statement like
(car (assoc-default :GOLD-value GOLD )
inside let,
since the first argument of let is an alist of the form
((sym1 val1) (sym2 val2))
[Q] Is there a way to using plists for return from find-my-marker-GOLD
and utilize in the user function test-GOLD
[Q] As you can see, I am looking for several level of solutions so I
can weight them.
The main goal is brevity, style improvement and more acceptable style.
(a) Solution that is pure elisp and does not use any defmacros , defclass etc.
(b) Solution that is clisp and un-restricted.
(c) and within both of the above, solutions with plist and alist.
[Q] test-GOLD will actually be a function called find-GOLD-processing-plant
similar to find-my-marker-GOLD in
that it would go using this data to the nearest GOLD processing plant with
the help of a suitable regexp. There was no need to split this set
of actions
into several small functions except for the purpose of modularity. The issue
is what is a good style for such a problem where there is coupling ie only
find-GOLD-processing-plant can use the object of type GOLD, not a
find-SILVER-processing-plant because there are some hidden assumptions, such
as the nearest regexp of type PLANT=address near a GOLD=value object
is a GOLD processing plant and the nearest regexp of type PLANT=address
near a SILVER=value object is a SILVER processing plant.
Thus, in view of this hidden coupling, which I am not able to get rid of
without too much complication and
The main goals are
to write main function as a readable english prose
and also
to remove the verbosity in passing data (alist and plist)
in and out of functions.
Thanks again for your help.
For a newbie please put some comments as in my function
find-my-marker-GOLD since many of you try to use language constructs
in clever ways ?
Franz Xe
- How to remove verbosity from the data passing mechanism using alist or plist ?,
Fren Zeee <=
- Message not available
- Message not available
- Fwd: How to remove verbosity from the data passing mechanism using alist or plist ?, Fren Zeee, 2010/12/07
- Re: Fwd: How to remove verbosity from the data passing mechanism using alist or plist ?, Stefan Monnier, 2010/12/07
- Re: Fwd: How to remove verbosity from the data passing mechanism using alist or plist ?, Fren Zeee, 2010/12/07
- Re: How to remove verbosity from the data passing mechanism using alist or plist ?, Chad Brown, 2010/12/07
- Re: How to remove verbosity from the data passing mechanism using alist or plist ?, Fren Zeee, 2010/12/07
- Re: How to remove verbosity from the data passing mechanism using alist or plist ?, Fren Zeee, 2010/12/07
- Re: How to remove verbosity from the data passing mechanism using alist or plist ?, Chong Yidong, 2010/12/08
- Re: How to remove verbosity from the data passing mechanism using alist or plist ?, Fren Zeee, 2010/12/08
- Re: Fwd: How to remove verbosity from the data passing mechanism using alist or plist ?, Stefan Monnier, 2010/12/08
- Re: Fwd: How to remove verbosity from the data passing mechanism using alist or plist ?, Fren Zeee, 2010/12/10