#autoload zsh_math_func_min() { local result=$1 shift local arg for arg ; do (( $arg < result )) && result=$arg done (( result )) # return } functions -M min 1 -1 zsh_math_func_min # at least one argument zsh_math_func_max() { local result=$1 shift local arg for arg ; do (( $arg > result )) && result=$arg done (( result )) # return } functions -M max 1 -1 zsh_math_func_max # at least one argument zsh_math_func_sum() { local sum local arg for arg ; do (( sum += $arg )) done (( sum )) } functions -M sum 0 -1 zsh_math_func_sum