function fact { local n=$1 if [ "$n" -eq 0 ]; then return 1 else fact $(( $n - 1 )) return $(( $n * $? )) fi }
for i in `seq 0 11`; do fact $i ; echo $? done 1 1 2 6 24 120 208 176 128 128 0 0 the results are wrong for 6 and above. is this a bug?
function fact { local n=$1 if [ "$n" -eq 0 ]; then return 1 else fact $(( $n - 1 )) return $(( $n * $? )) fi }
for i in `seq 0 11`; do fact $i ; echo $? done 1 1 2 6 24 120 208 176 128 128 0 0 the results are wrong for 6 and above. is this a bug?