anchor.diff:      ("(tard|ass)" ("no, you're the $0"))
       ("die" ("no, you die"))
       ("you suck" ("your mum sucks"))
  -    ("phrik" ("screw phrik"))))
  +    ("phrik" ("screw phrik"))
  +    ("(.*)" ("Why do you say that $0\?" "What do you mean when you say that $0\?"
  +	     "What are your motives behind saying such a thing\?"
  +	     "I think it's clear that you're full of shit when you say that $0."))))
   
  -				   
   (defun respond-to (string)
     (respond string *eliza-responses*))
   
  -
   (defcommand - ("(.+)" string)
     (respond-to string))
positive.code:   '(("hello" ("go away"))
      ("my name is (\\w+)" ("hello $0"
  			  "greetings $0"))
  
  ;;psychoanalysis
      ("I need (.+)" ("Why do you need $0?"
  		    "Would it really help to get $0?"))
      ("I dreamt (that|about|)(.+)" ("You dream $0 $1 often then?"
  
negative.code: 
  (in-package :sykobot)
  
  (defun translate (string alist)
    "take a string and replace any (key, value) in alist"
    (let ((words (split "\\s+" string)))
      (loop for word in words
            for y from 0
         when (alref word alist)
  	 do (setf (elt words y) (alref word alist)))
      (format nil "~{~A~^ ~}" words)))
  
  (defun substitute-groups (string groups)
    "take a string containing $1 $2 etc and substitute with the coresponding element"
    (let ((words (split "\\s+" string)))
      (loop for word in words
         for y from 0
         when (equalp (char word 0) #\$)
  