component-list-child-number
dblib.dsl
component-list-child-number
Find child-number of a list of children within a component
Synopsis
(component-list-child-number inputnd inputlist complist)
Description
Finds the first ancestor of inputnd in complist and
then counts all the elements of the types in inputlist
from that point on and returns the number of inputnd.
If the node is not found, 0 is returned.
WARNING: this requires walking over *all* the descendants
of the ancestor node. This may be *slow*.
Author
Norman Walsh, <ndw@nwalsh.com>
Source Code
(define (component-list-child-number inputnd inputlist complist)
;; Find child-number of a list of children within a component
(let loop ((nl (component-list-descendant-node-list
inputnd inputlist complist))
(num 1))
(if (node-list-empty? nl)
0
(if (node-list=? (node-list-first nl) inputnd)
num
(loop (node-list-rest nl) (+ num 1))))))