fix some bugs

replace define with def
now support:
    (set! (x :a) 12) to change the value of dictionary