summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index cd282da0..1d1b6cf0 100644
--- a/eval.c
+++ b/eval.c
@@ -5463,6 +5463,17 @@ val maprendv(val fun, struct args *lists)
return prod_common(fun, lists, list_collect_append, mappendv);
}
+static loc collect_nothing(loc ptail, val obj)
+{
+ (void) obj;
+ return ptail;
+}
+
+static val maprodo(val fun, struct args *lists)
+{
+ return prod_common(fun, lists, collect_nothing, mappendv);
+}
+
static val symbol_value(val sym)
{
uses_or2;
@@ -6535,6 +6546,7 @@ void eval_init(void)
reg_fun(intern(lit("mapdo"), user_package), func_n1v(mapdov));
reg_fun(intern(lit("maprod"), user_package), func_n1v(maprodv));
reg_fun(intern(lit("maprend"), user_package), func_n1v(maprendv));
+ reg_fun(intern(lit("maprodo"), user_package), func_n1v(maprodo));
reg_fun(intern(lit("window-map"), user_package), func_n4(window_map));
reg_fun(intern(lit("window-mappend"), user_package), func_n4(window_mappend));
reg_fun(intern(lit("window-mapdo"), user_package), func_n4(window_mapdo));