]> git.vouivredigital.com Git - vouivre.git/commitdiff
Implement a functional flip
authoradmin <admin@vouivredigital.com>
Sun, 5 Nov 2023 12:44:22 +0000 (21:44 +0900)
committeradmin <admin@vouivredigital.com>
Sun, 5 Nov 2023 12:44:22 +0000 (21:44 +0900)
misc.scm

index 42037a398cb93211c0f97559b4d33fef06c150d5..72c991be59203fc458a82f03c759575c668c3111 100644 (file)
--- a/misc.scm
+++ b/misc.scm
@@ -4,6 +4,7 @@
   #:export
   (array-map
    array-map-indexed
+   flip
    for-indices-in-range
    if-let
    ifn
    map-indexed
    produce-array))
 
+(define (flip f)
+  "Returns a procedure behaving as `f', but with arguments taken in reverse
+order."
+  (lambda args
+    (apply f (reverse args))))
+
 (define-syntax if-let
   (syntax-rules ()
     [(_ (x test) consequent alternate)