Introduction
In mathematics, the hyperoperation sequence is an infinite sequence of arithmetic operations (called hyperoperations) that starts with the unary operation of successor (n = 0), then continues with the binary operations of addition (n = 1), multiplication (n = 2), and exponentiation (n = 3), after which the sequence proceeds with further binary operations extending beyond exponentiation, using right-associativity.
(Source)
Challenge
Your challenge is code this sequence, given 3 inputs, n, a, and b, code a function such that $${\displaystyle H_{n}(a,b)={\begin{cases}b+1&{\text{if }}n=0\\a&{\text{if }}n=1{\text{ and }}b=0\\0&{\text{if }}n=2{\text{ and }}b=0\\1&{\text{if }}n\geq 3{\text{ and }}b=0\\H_{n-1}(a,H_{n}(a,b-1))&{\text{otherwise}}\end{cases}}}$$ (Also from Wikipedia.)
Input
3 positive decimal integers, n, a, and b, taken from STDIN, function or command line arguments, in any order. Make sure to specify this in your answer
Output
The result of applying \$H_{n}(a,b)\$ with the inputs
Example inputs and outputs
Input: 0, 6, 3
Output: 4
Input: 4 5 2
Output: 3125
Restrictions
- Your program/function should take input in base 10
- Don't use any built in function that already provides H(n, a, b)
- Standard loopholes apply
This is code-golf, so shortest code in bytes wins!