|
Subject: Re: Problem With tree-before From: Richard Light <richard@xxxxxxxxxxxxxxxxx> Date: Fri, 3 Apr 1998 11:19:08 +0100 |
In message <3.0.32.19980402224639.0076a38c@xxxxxxxxxx>, "W. Eliot
Kimber" <eliot@xxxxxxxxxx> writes
>I'm trying to implement the preceding XPointer location term using
>tree-before, which I think matches the behavior of preceding(). Using the
>definitions in the DSSSL standard, I copied over all the functions that
>Jade didn't implement. However, I now get an infinite loop somewhere in the
>chain. Before I spend a lot of time chasing down the problem, I was
>wondering if anyone else had tried to do this and ran into a typo in the
>DSSSL spec or something. I looked at the DSSSL list archive but didn't find
>anything. The functions I had to copy are:
>
>node-list-contains?
>node-list-intersection
>node-list-reduce
>node-list-remove-duplicates
>node-list-property
>sort-in-tree-order
>reduce
>subtree
>tree-root
>node-list-filter
>tree-before
>tree-before?
In my copy of the standard I have annotated the following change to
node-list-filter:
(define (node-list-filter proc n1)
(node-list-reduce n1
(lambda (result sn1)
(if (proc sn1)
(node-list result sn1)
; this was (node-list sn1 result) in the standard
result))
(empty-node-list)))
(Just don't ask me how I found out this was wrong, or what the change
does!)
Incidentally, I also have an annotation for (ancestors) with the
commentary 'error (loops)', so you can have that one too:
(define (ancestors n1)
(node-list-map (lambda (sn1)
(let loop (cur (parent sn1))
(result (empty-node-list)))
(if (node-list-empty? cur)
result
(loop (parent cur) ; was sn1 in printed standard
(node-list cur result)))))
n1))
Hope this does it,
Richard.
Richard Light
SGML/XML and Museum Information Consultancy
richard@xxxxxxxxxxxxxxxxx
DSSSList info and archive: http://www.mulberrytech.com/dsssl/dssslist
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Problem With tree-before, W. Eliot Kimber | Thread | page-number-sosofo, Pawson, David |
| RE: Help with select-elements funct, Pawson, David | Date | RE: Using "DEFINE", Pawson, David |
| Month |