Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defgeneric glue (object &rest with-other-objects))
- (defgeneric binary-glue (left right))
- (defmethod glue ((object t) &rest with-other-objects)
- (if with-other-objects
- (binary-glue object (apply (function glue) with-other-objects))
- object))
- (defmethod binary-glue ((left integer) (right integer))
- (+ (* left (expt 10 (ceiling (log right 10))))
- right))
- (defmethod binary-glue ((left string) (right string))
- (concatenate 'string left right))
- (defmethod binary-glue ((left symbol) (right symbol))
- (intern (binary-glue (string left) (string right))))
- (defmethod binary-glue ((left symbol) (right string))
- (intern (binary-glue (string left) right)))
- (defmethod binary-glue ((left string) (right symbol))
- (binary-glue left (string right)))
- (defmethod binary-glue ((left integer) (right symbol))
- (intern (binary-glue (prin1-to-string left) (string right))))
- (defmethod binary-glue ((left integer) (right string))
- (binary-glue (prin1-to-string left) right))
- (glue 1 'deux "trois")
- --> |1DEUXtrois|
- (glue 1 "deux" 'trois)
- --> "1deuxTROIS"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement