[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Fwd: How to remove verbosity from the data passing mechanism using alist
From: |
Fren Zeee |
Subject: |
Fwd: How to remove verbosity from the data passing mechanism using alist or plist ? |
Date: |
Mon, 6 Dec 2010 22:18:07 -0800 |
There was no reply from the help mailing list and this is very
confusing so I am forced to go back where the crowd is. Its a very
simple issue of cons versus list below.
---------- Forwarded message ----------
From: Fren Zeee <address@hidden>
Date: Mon, Dec 6, 2010 at 11:45 AM
Subject: Re: How to remove verbosity from the data passing mechanism
using alist or plist ?
To: Thien-Thi Nguyen <address@hidden>
Cc: address@hidden
On Mon, Dec 6, 2010 at 6:13 AM, Thien-Thi Nguyen <address@hidden> wrote:
> [cc changed to help-gnu-emacs -- this does not belong on emacs-devel]
>
> () Fren Zeee <address@hidden>
> () Sun, 5 Dec 2010 12:15:08 -0800
>
> [code]
>
> Here is ‘find-my-marker-GOLD’, munged a bit:
>
> (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 accessible region, find GOLD.
> (goto-char (point-max))
> ;; a/ This value of this expression is discarded.
> ;; It turns out to be the same as "location" below,
> ;; so if you save it, you can avoid a call to ‘point’.
> ;; b/ The optional args default to ‘nil’, and can be dropped.
> (search-backward-regexp "GOLD=\\([0-9]+\\)\n" nil nil nil)
>
> ;; In the following, i have deleted the eol comments, which
> ;; obscure more than enlighten (on my small computer screen).
>
> ;; You might consider using `((k0 . ,v0)
> ;; (k1 . ,v1))
> ;; for succinctness (note backquote and comma placement).
> ;; An intermediate solution is to use ‘acons’.
> (list
> (list
> :GOLD-value
> ;; The ‘replace-regexp-in-string’ is not necessary.
> ;; The initial regexp match (above) already sets the match
> ;; data; you can use ‘(match-string 1)’ to retrieve it.
> (string-to-number
> (replace-regexp-in-string "GOLD=\\([0-9]+\\)\n" "\\1" (match-string
> 0))))
> (list
> :GOLD-location
> (point))))))
>
> [Q] Are there any defects in this method of passing struct and what
> improvements are possible ?
>
> All defects are misalignments of intention and implementation.
> If you don't know your intention clearly, it's easy for a defect
> to creep in. Improvements, likewise, depend on intention and pov.
>
> Specifically, are there ways to reduce verbosity without using cl
> or staying purely in elisp ?
>
> You can use shorter variable names. You can make your program
> less piecewise-constructive and more table-oriented.
>
> [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))
>
OK lets take the suggestion below and show me how it works with my case ?
> You need the ‘car’ because you do ‘(list k v)’.
> If you use ‘(cons k v)’, then you do not need the ‘car’.
What I have is
(list (list k1 v1) (list k2 v2))
Now, kindly show me where I put the car to get both of these uniformly
communicated outside of the function to another function ? Later in
some cases I may have (k3 v3) pair !!!
>
> [Q] Is there a way to using plists for return from find-my-marker-GOLD
> and utilize in the user function test-GOLD
>
> Yes, but probably you will want to avoid plists.
>
- How to remove verbosity from the data passing mechanism using alist or plist ?, Fren Zeee, 2010/12/05
- Message not available
- Message not available
- Fwd: How to remove verbosity from the data passing mechanism using alist or plist ?,
Fren Zeee <=
- 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
- Re: Fwd: How to remove verbosity from the data passing mechanism using alist or plist ?, PJ Weisberg, 2010/12/10