On 02/04/2014 20:53, Alejandro Zamora Fonseca wrote:
(defmethod dup ((a string))
(concatenate 'string a a))
(defmethod dup ((a integer))
(list a a))
1) From the standard Racket "swindle/tiny-clos" library, you can use the
CLOS-like functions that you may already know from Common Lisp.
2) I have written a short library myself for this, and your code would
look like this:
(def-multi dup)
(add-multi dup (list string?) (lambda (a) (string-append a a)))
(add-multi dup (list integer?) (lambda (a) (list a a)))
(dup "Hello") => "HelloHello"
(dup 10) => '(10 10)
I can share it if you're interested, it's roughly 40 lines of code.
-Patrick
____________________
Racket Users list:
http://lists.racket-lang.org/users