Returns a node list containing all the nodes from nodelist whose GIs are members of gilist. The order of nodes in the node list is preserved.
(define (node-list-filter-by-gi nodelist gilist) ;; Returns selected elements from a node list (let loop ((result (empty-node-list)) (nl nodelist)) (if (node-list-empty? nl) result (if (member (gi (node-list-first nl)) gilist) (loop (node-list result (node-list-first nl)) (node-list-rest nl)) (loop result (node-list-rest nl))))))