function multiply(arr){
//(base case)
if(arr.length === 0){
return 1;
}
//(recursive case)
const head = arr[0];
const tail = arr.slice(1);
return head * multiply(tail);
}
// multiply([1, -2, 1, 3]) return -6
// return 1 * multiply(-2,1,3) = -6
// return -2 * multiply([1,3]) = -6
// return 1 * multiply([3]) = 3
// return 3 * multiply([]) = 3
// return 1 재귀 종료
❓recursive 와 iterative
recursive도 자신을 계속 호출시켜 조건에 맞게 반복하고 iterative도 for문 등으로 반복하는 작업을해서 비슷하긴 iterative로 코드를 작성하다보니 너무 길어지거나 가독성이 좋지 않다면 재귀를 사용할 것 같다. 하지만 호출 스택이 너무 커진다면 반복문으로 대체하며 사용할 것 같다.