|
Subject: Re: Numbering sections - erratum From: Daniel Speck <dspeck@xxxxxxxxxxxx> Date: Tue, 11 Nov 1997 09:07:52 -0500 |
Richard Light wrote:
...
>
> You need to declare your 'countable elements' as a list of strings:
>
> (define (countable-elements)
> (list "XXX" "YYY" "ZZZ" ...)
> )
First, instead of defining a procedure that returns a constant list you
could just define a variable whose value is the list:
(define countable-elements '("XXX" "YYY" "ZZZ"))
> I thought that I had tested the use of a (countable-elements)-type
> procedure as a means of specifying the list of GI's, and found it to
> work. However, I can't have done, because it doesn't!
>
> You can get around this problem by specifying the list of GI's directly
> within the routine:
>
> (define (preced-count node)
> (node-list-length
> (node-list-filter
> (lambda (n1)
> (case (gi n1)
> (("XXX" "YYY" "ZZZ" ...) #t)
> (else #f)
> )
> )
> (preced node)
> )
> )
> )
>
> but this isn't very elegant.
You really aren't making much use of the (case ...) construct here. an
(if (member? (gi nl) countable-elements ... ...) might be more
appropriate.
>
> My original idea - of declaring the list of fields as a procedure - is
> with hindsight pretty silly anyway. What you want to do is to pass the
> list of fields as an argument to the (preced-count) procedure; something
> like:
>
> (define (preced-count node gilist)
> (node-list-length
> (node-list-filter
> (lambda (n1)
> (case (gi n1)
> (gilist #t)
> (else #f)
> )
> )
> (preced node)
> )
> )
> )
>
> Can anyone advise how you pass a list of strings as an argument in this
> way? Jade complains about the 'gilist' within the (case ...) statement
> when I use the syntax above since it is trying to interpret it as a
> procedure.
The (case ...) construct does not evaluate the "datum" part of each
case-clause.
I would just use the following as the lambda expression:
(lambda (nl)
(member? (gi nl) gilist))
-dan
--
Daniel Speck e-mail: dspeck@xxxxxxxxxxxx
Research Engineer voice: +1 301.548.7818
Thomson Technology Services Group fax: +1 301.527.4094
1375 Piccard Drive, Rockville, MD 20850 WWW: www.thomtech.com
DSSSList info and archive: http://www.mulberrytech.com/dsssl/dssslist
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: Numbering sections - erratum, Paul Prescod | Thread | (match-element?), Chris Maden |
| Re: Numbering sections - erratum, Paul Prescod | Date | Left/Right alternating headers in J, Norman Walsh |
| Month |