|
Subject: node-list-filter, node-list-map return a reversed result From: Heiko Kirschke <Heiko.Kirschke@xxxxxxx> Date: Tue, 28 Apr 1998 14:34:17 +0200 |
Hi,
the definition of node-list-filter as given in the DSSSL
specification in section 10.2.2:
(define (node-list-filter proc nl)
(node-list-reduce nl
(lambda (result snl)
(if (proc snl)
(node-list snl result)
result))
(empty-node-list)))
returns a proper node list, but the node list is reversed w.r.t. the
source list passed in argument `nl'. To keep the ordering of the
source list, its definition should be changed to:
(define (my-node-list-filter proc nl)
(node-list-reduce nl
(lambda (result snl)
(if (proc snl)
(node-list result snl)
result))
(empty-node-list)))
Assuming that (node-list) does a destructive concatenation of its
arguments, the definition given in the DSSSL specification will run
faster than the latter one.
Same considerations hold for (node-list-map).
BTW, is this a bug or not? From section 10.1.2 can be deduced that
node-lists are ordered (otherwise they would have been named
`node-sets', I guess).
Viele Gruesse, Heiko
DSSSList info and archive: http://www.mulberrytech.com/dsssl/dssslist
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: Correct syntax for case?, Heiko Kirschke | Thread | Re: node-list-filter, node-list-map, Tony Graham |
| Re: Question about Jade's table flo, James Clark | Date | Re: node-list-filter, node-list-map, Tony Graham |
| Month |