aboutsummaryrefslogtreecommitdiff
path: root/sucl
diff options
context:
space:
mode:
Diffstat (limited to 'sucl')
-rw-r--r--sucl/basic.dcl3
-rw-r--r--sucl/basic.icl3
2 files changed, 6 insertions, 0 deletions
diff --git a/sucl/basic.dcl b/sucl/basic.dcl
index c51d57e..0d06233 100644
--- a/sucl/basic.dcl
+++ b/sucl/basic.dcl
@@ -184,3 +184,6 @@ stub :: .String .String .String -> .a
// `Superset xs ys' determines whether ys is a superset (actually, super-multi-set or super-list) of xs.
superset :: .[a] -> .(.[a] -> Bool) | == a
+
+// zipwith zips up two lists with a joining function
+zipwith :: (.a .b->.c) ![.a] [.b] -> [.c]
diff --git a/sucl/basic.icl b/sucl/basic.icl
index 270b13a..7319b67 100644
--- a/sucl/basic.icl
+++ b/sucl/basic.icl
@@ -265,3 +265,6 @@ stub modulename functionname message
superset :: .[a] -> .(.[a] -> Bool) | == a
superset set = isEmpty o (removeMembers set)
+
+zipwith :: (.a .b->.c) ![.a] [.b] -> [.c]
+zipwith f xs ys = [f x y \\ x<-xs & y<-ys]