Guest User

Untitled

a guest
Oct 29th, 2013
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 1.77 KB | None | 0 0
  1. (defparameter *listeners* (make-hash-table :test 'equal))                      
  2.                                                                                
  3. ;; Instead of typing this everytime                                            
  4. (setf (gethash "click" *listeners*)                                              
  5.       #'(lambda ()                                                              
  6.           (do stuff)))                                                          
  7.                                                                                
  8. (setf (gethash "dblclick" *listeners*)                                          
  9.       #'(lambda ()                                                              
  10.           (do other stuff)))                                                    
  11.                                                                                
  12. ;; You can add a simple macro                                                  
  13. (defmacro deflistener (name &body body)                                        
  14.   `(setf (gethash ,name *listeners*)                                            
  15.          #'(lambda ()                                                          
  16.              ,@body)))                                                          
  17.                                                                                
  18. ;; And use it like this                                                        
  19. (deflistener "click"                                                            
  20.   (do stuff))                                                                  
  21.                                                                                
  22. (deflistener "dblclick"                                                        
  23.   (do other stuff))
Advertisement
Add Comment
Please, Sign In to add comment