+ a elegent implementation of merge sort
+ test on yield keyword