add more test case for closure
updatE
change call convension to scheme
tail call optimization