From 60efe0956e2f54ef9ba6049531e3f3c0a8a881a7 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Thu, 1 Dec 2016 06:57:50 -0800 Subject: Adding curry_1234_1 function. * lib.c (do_curry_1234_1): New static function. (curry_1234_1): New function * lib.h: (curry_1234_1): Declared. --- lib.c | 15 +++++++++++++++ lib.h | 1 + 2 files changed, 16 insertions(+) diff --git a/lib.c b/lib.c index ea16348c..e5dde43f 100644 --- a/lib.c +++ b/lib.c @@ -6251,6 +6251,21 @@ val curry_123_23(val fun3, val arg1) return func_f2(cons(fun3, arg1), do_curry_123_23); } +static val do_curry_1234_1(val fcons, val arg1) +{ + cons_bind (fun, dr, fcons); + cons_bind (arg2, ddr, dr); + cons_bind (arg3, dddr, ddr); + val arg4 = car(dddr); + + return funcall4(fun, arg1, arg2, arg3, arg4); +} + +val curry_1234_1(val fun4, val arg2, val arg3, val arg4) +{ + return func_f1(list(fun4, arg2, arg3, arg4, nao), do_curry_1234_1); +} + static val do_curry_1234_34(val fcons, val arg3, val arg4) { return funcall4(car(fcons), car(cdr(fcons)), cdr(cdr(fcons)), arg3, arg4); diff --git a/lib.h b/lib.h index b141a28c..4a4e52a4 100644 --- a/lib.h +++ b/lib.h @@ -866,6 +866,7 @@ val curry_123_3(val fun3, val arg1, val arg2); val curry_123_2(val fun3, val arg1, val arg3); val curry_123_1(val fun3, val arg2, val arg3); val curry_123_23(val fun3, val arg1); +val curry_1234_1(val fun4, val arg2, val arg3, val arg4); val curry_1234_34(val fun3, val arg1, val arg2); val chain(val first_fun, ...); val chainv(struct args *funlist); -- cgit v1.2.3