Mercurial > urweb
diff demo/more/dlist.ur @ 965:e9c5992bc9bc
Progress on sorting + filtering
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Sat, 19 Sep 2009 14:42:36 -0400 |
parents | fbc3a0eef45a |
children | c2fe1dbaceb9 |
line wrap: on
line diff
--- a/demo/more/dlist.ur Sat Sep 19 14:21:25 2009 -0400 +++ b/demo/more/dlist.ur Sat Sep 19 14:42:36 2009 -0400 @@ -260,6 +260,21 @@ Empty => return 0 | Nonempty {Head = hd, ...} => size' hd +fun numPassing' [t] (f : t -> signal bool) (dl'' : dlist'' t) = + case dl'' of + Nil => return 0 + | Cons (x, dl'') => + b <- f x; + dl'' <- signal dl''; + n <- numPassing' f dl''; + return (if b then n + 1 else n) + +fun numPassing [t] (f : t -> signal bool) (dl : dlist t) = + dl' <- signal dl; + case dl' of + Empty => return 0 + | Nonempty {Head = hd, ...} => numPassing' f hd + fun foldl [t] [acc] (f : t -> acc -> signal acc) = let fun foldl'' (i : acc) (dl : dlist'' t) : signal acc =