2a63b94b |
(in-package :edn)
|
ee000f9c |
(defclass fset ()
()
(:documentation "An EDN synthesizer that produces fset datastructures"))
|
2a63b94b |
|
ee000f9c |
(defmethod synthesize-compound ((implementation fset) (discriminator (eql :map)) args)
|
2a63b94b |
(fset:convert 'fset:map
(mapcar (fw.lu:destructuring-lambda ((p k v))
(declare (ignore p))
(cons (synthesize implementation k)
(synthesize implementation v)))
args)))
|
ee000f9c |
(defmethod synthesize-compound ((implementation fset) (discriminator (eql :set)) args)
|
2a63b94b |
(fset:convert 'fset:set
(mapcar (lambda (a)
(synthesize implementation a))
args)))
|
ee000f9c |
(defmethod synthesize-compound ((implementation fset) (discriminator (eql :vector)) args)
|
2a63b94b |
(fset:convert 'fset:seq
(mapcar (lambda (a)
(synthesize implementation a))
args)))
|
ee000f9c |
(defmethod synthesize-compound ((implementation fset) (discriminator (eql :list)) args)
|
2a63b94b |
(mapcar (lambda (a)
(synthesize implementation a))
args))
|