# Sum of Integers with a Pure Function

How would I find the sum of an argument, with the constraint that they are all integers (so if the argument contains a non-integer value, the function will not evaluate).

I came up with these two:

sumInts[n__?(IntegerQ[#] &)] := +n

and

sum[x__Integer] := +x

Both are impure functions (though the first function uses a pure predicate). How would I go about making a pure function? I couldn't figure out how to because of the Integer constraint.

Thanks!

Probably something like this would work:

f := (If[AllTrue[{##}, IntegerQ] , +##]) &

• Brilliant! I'm very new to Mathematica, so I'm often unable to come up with more creative solutions since I'm unfamiliar with a lot of the functions such as If and AllTrue. Thank you very much! – A is for Ambition Jun 25 '15 at 8:33
• @AisforAmbition, Glad to help:) – Algohi Jun 25 '15 at 8:34
• More classically: MatchQ[{##}, {__Integer}]. – J. M. is away Jun 25 '15 at 8:55