odd, if $calc(1 / banana) returns 0 then shouldnt $calc(1 +d 3) return 0.

Unless because the d is in the same parameter as the addition sign. This might cause everything after the first parameter to become invalid, returning only the first parameter, 1.