implemented currying function and use macro to do auto-currying
add some test case in curry.scm