A couple more functions I've used in my work.

svn: r9697

original commit: 6ae8e6ab5060714130679297700c3fbb4822cf83
This commit is contained in:
Stevie Strickland 2008-05-06 18:57:33 +00:00
parent 433004b549
commit e4c4d15921

View File

@ -137,6 +137,9 @@
[take (-poly (a) ((-lst a) -Integer . -> . (-lst a)))]
[drop (-poly (a) ((-lst a) -Integer . -> . (-lst a)))]
[add-between (-poly (a b) ((-lst a) b . -> . (-lst (Un a b))))]
[remove* (-poly (a b)
(cl-> [((-lst a) (-lst a)) (-lst a)]
[((-lst a) (-lst b) (a b . -> . B)) (-lst b)]))]
[call-with-values (-poly (a b) (-> (-> a) (-> a b) b))]
@ -188,6 +191,7 @@
[length (make-Poly '(a) (-> (make-lst (-v a)) -Integer))]
[memq (make-Poly (list 'a) (-> (-v a) (make-lst (-v a)) (-opt (make-lst (-v a)))))]
[memv (make-Poly (list 'a) (-> (-v a) (make-lst (-v a)) (-opt (make-lst (-v a)))))]
[memf (-poly (a) ((a . -> . B) (-lst a) . -> . (-opt (-lst a))))]
[member
(-poly (a) (a (-lst a) . -> . (-opt (-lst a))))]