# [Brachylog], <s>7</s> 6 bytes

By making a range and multiplying it

-1 byte tanks to ovs having the idea to use the max() function

    ;1⌉⟦₁×

## Explanation 

	;1			--	If n<1, use n=1 instead (zero case)
	  ⟦₁		--		Construct the range [1,n]
	    ×		--		return the product of said range


[Try it online!][TIO-range]

-----

# [Brachylog], <s>10</s> 9 bytes

recursion

    ≤1|-₁↰;?×

## Explanation 

				--f(n):
	≤1			--	if n ≤ 1: return 1
	|			--	else:
	 -₁↰		--		f(n-1)
	    ;?×		--			  *n

[Try it online!][TIO-recursion]


[Brachylog]: https://github.com/JCumin/Brachylog
[TIO-range]: https://tio.run/##SypKTM6ozMlPN/r/39rwUU/no/nLHjU1Hp7@/7/p/ygA "Brachylog – Try It Online"
[TIO-recursion]: https://tio.run/##SypKTM6ozMlPN/r//1HnEsMa3UdNjY/aNljbH57@/7@hwf8oAA "Brachylog – Try It Online"