recursion practice in go