Subject: Re: Nodes and counting From: christo@xxxxxxxxxxxxxxxxxx (Frank Christoph) Date: Wed, 1 Oct 1997 16:13:31 +0900 |
> I don't think it's been tested! Nope, it sure hasn't! Maybe if OpenDoc had survived, I would have a Scheme interpreter component integrated with my e-mailer, but that is a dead dream. Nonetheless, thanks for pointing out my errors. > Frank> (define (or-map f #!rest bs) > Frank> (apply or (map f bs)) > > You can't apply `or'. Indeed, it appears you can't. At least that helps prevent one from running into the trickiness with short-circuiting and non-termination. > Frank> (define (curry f x) ; N.B., arity(f) > 1 > Frank> (lambda (!#rest xs) (apply f (cons x xs)))) > > [It's better to avoid consing and write `(apply f x xs)' and, > actually, f could be unary.] Wow, it never occurred to me that currying a unary function could be defined to produce a thunk... On second thought, I guess it is obvious since () is a 0-place product. > Frank> (define (gid=? x #!optional str) > Frank> (cond > Frank> ((and (node-list? x) (string? str)) > Frank> (string=? x str)) > Frank> ((string? x) > Frank> (string=? (current-node) x)) > Frank> (else > Frank> (error "gid=?: expected (gid=? [<node>] <string>)")))) > > The args to `string=?' are clearly wrong there. Of course I just forgot the gi's here. This should have read: (define (gid=? x #!optional str) (cond ((and (node-list? x) (string? str)) (string=? (gi x) str)) ((string? x) (string=? (gi (current-node)) x)) (else (error "gid=?: expected (gid=? [<node>] <string>)")))) > Frank> (let ((pred (lambda (n) (or-map (curry gid=? n) "child2" "child3"))) > Frank> (if (node-list-some? pred (follow (current-node))) 0em 2em)) > > Could the predicate be just this? > (lambda (snl) (member (gi snl) '("CHILD2" "CHILD3"))) Well, only if you want it to be simple... :) Maybe I should refrain from `making mountains' from now on (at least in public :)... --FC DSSSList info and archive: http://www.mulberrytech.com/dsssl/dssslist
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: Mixing page number formats?, James Clark | Thread | RE: Nodes and counting, Pawson, David |
Re: Mixing page number formats?, James Clark | Date | RE: Nodes and counting, a solution, Pawson, David |
Month |