obj represents the pattern object obj, assigned the name s.
The name s must be a symbol.
The object obj can be any pattern object.
When a transformation rule is used, any occurrence of s on the right-hand side is replaced by whatever expression it matched on the left-hand side.
The operator : has a comparatively low precedence. The expression x:_+_ is thus interpreted as x:(_+_), not (x:_)+_.
The form s
_ is equivalent to s
:_. Similarly, s
h is equivalent to s
__ to s
:__, and so on.
See the Mathematica book: Section 2.3.3, Section A.2.7.
The definition applies only when the argument of gamma is an integer.