I am writing a tutorial on developing a Scheme compiler and one of the data structures I am using is a pair of lists, where the car of the pair is a list of the symbols and the cdr of the pair is a list of their values.
For example, an a-list of the data might be '((a . 10) (b . 20) (c . 30))
And the p-list version would be '((a 10) (b 20) (c 30))
My data structure would be '((a b c) 10 20 30)
I am wondering if there is a common name for such a data structure (along the lines of a-list and p-list). If not, I would be open to suggestions on how I should refer to it.
A pair of lists
-
- Posts: 2038
- Joined: Tue Nov 29, 2005 8:28 pm
- Location: latiitude 50N longitude 3W
- Contact:
Re: A pair of lists
Do you mean '((a b c) (10 20 30))? Perhaps an 'indexed list'?
You might try asking on comp.lang.lisp. They have opinions to spare.
Just don't call it an iList. That's probably trademarked ...
You might try asking on comp.lang.lisp. They have opinions to spare.
Just don't call it an iList. That's probably trademarked ...
Re: A pair of lists
Functionally the pair of lists would be equivalent to '((abc) . (10 20 30)) but when printed, the dotted notation gets removed such that the items in the second list directly follow the first list.cormullion wrote:Do you mean '((a b c) (10 20 30))?
"Indexed list" would still seem a fairly apt term.
Re: A pair of lists
The term pair of lists makes sense to me and relates to your p-list using the transpose function:
Ps: there are new in-progress Windows binaries and source available at:
http://www.newlisp.org/downloads/develo ... nprogress/
with multiple times speed-up in unlimited precision integer division.
Code: Select all
(transpose '((a b c) (10 20 30))) --> ((a 10) (b 20) (c 30))
http://www.newlisp.org/downloads/develo ... nprogress/
with multiple times speed-up in unlimited precision integer division.
Re: A pair of lists
You da best, Lutz. Thanks!Lutz wrote:Ps: there are new in-progress Windows binaries and source available at:
http://www.newlisp.org/downloads/develo ... nprogress/
with multiple times speed-up in unlimited precision integer division.
(λx. x x) (λx. x x)