aboutsummaryrefslogtreecommitdiff
path: root/src/clojure/contrib/types
diff options
context:
space:
mode:
authorKonrad Hinsen <konrad.hinsen@laposte.net>2009-03-18 09:16:30 +0000
committerKonrad Hinsen <konrad.hinsen@laposte.net>2009-03-18 09:16:30 +0000
commit334ad56890518ddd27c1327a25c91f8db873e417 (patch)
treea38f17f40b553de7ffc608928c7a9b2f5203b1b8 /src/clojure/contrib/types
parent832224974863b538b509715607c24a38a236554f (diff)
generic: new module functor
Diffstat (limited to 'src/clojure/contrib/types')
-rw-r--r--src/clojure/contrib/types/examples.clj11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/clojure/contrib/types/examples.clj b/src/clojure/contrib/types/examples.clj
index 214f7e1c..8c56b1c5 100644
--- a/src/clojure/contrib/types/examples.clj
+++ b/src/clojure/contrib/types/examples.clj
@@ -9,7 +9,8 @@
(ns clojure.contrib.types.examples
(:use [clojure.contrib.types
:only (deftype defadt match)])
- (:require [clojure.contrib.generic.collection :as gc]))
+ (:require [clojure.contrib.generic.collection :as gc])
+ (:require [clojure.contrib.generic.functor :as gf]))
;
; Multisets implemented as maps to integers
@@ -74,15 +75,15 @@
(depth empty-tree)
(depth a-tree)
-; Algebraic data types with multimethods: map on a tree
-(defmethod gc/map ::tree
+; Algebraic data types with multimethods: fmap on a tree
+(defmethod gf/fmap ::tree
[f t]
(match t
empty-tree empty-tree
(leaf v) (leaf (f v))
- (node l r) (node (gc/map f l) (gc/map f r))))
+ (node l r) (node (gf/fmap f l) (gf/fmap f r))))
-(gc/map str a-tree)
+(gf/fmap str a-tree)
;
; Nonsense examples to illustrate all the features of match