From bf25d5c2618ed9e8726f99872e9c823867a89086 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Thu, 15 Nov 2018 22:15:59 +0100 Subject: Add functor concept. --- data/functor.scm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 data/functor.scm (limited to 'data/functor.scm') diff --git a/data/functor.scm b/data/functor.scm new file mode 100644 index 0000000..2286337 --- /dev/null +++ b/data/functor.scm @@ -0,0 +1,14 @@ +(define-module (data functor) + #:use-module (oop goops) + #:use-module (srfi srfi-1) + #:export (fmap <$>)) + +;;; We don't overwrite the default map since that creates way to many +;;; namespace problems. + +(define-generic fmap) +(define <$> fmap) + +;;; Default fallback for fmap is regular (srfi-1) map. +(define-method (fmap f . lists) + (apply map f lists)) -- cgit v1.2.3