Consider the following function F2 Define F2XY IF Y 0 RETURN
Consider the following function F2:
Define F2(X,Y)
IF Y= 0 RETURN 0
ELSE IF X = 0 RETURN (2 * Y)
ELSE IF Y = 1 RETURN 2
ELSE RETURN F2((X-1), F2(X, Y-1))
In prose: if the value of Y (the second argument) is 0, return 0. Otherwise, if the value of
the first argument (namely X) is 0, return 2 times the value of Y. Otherwise, if the value
of Y is 1, return 2. Otherwise, call this function F2 on two values: the first is X-
1, and the second is the result of calling F2 on X and (Y-1).What is the value of F2(3,3)?
Solution
=========================================================
------------
 Answer:
 ------------
    F2(3,3) = 65536
--------------------
 Explanation:
 --------------------
   Since the given function is a recursive call, Internally it calls for multiple times till it resolved the expression.
   
 Below is the trace for the same.
    x =3 y = 3
   
        F2(2,F2(3, 2))
        x =3 y = 2
           
            F2(2,F2(3, 1))
            x =2 y = 2
                   
                F2(1,F2(2, 1))
                x =1 y = 2
           
                    F2(0,F2(1, 1))
                    RETURN 4
                   
            x =2 y = 4
                   
            F2(1,F2(2, 3))
            x =2 y = 3
       
                F2(1,F2(2, 2))
                x =2 y = 2
       
                    F2(1,F2(2, 1))  
                    x =1 y = 2
       
                    F2(0,F2(1, 1))
                    RETURN 4
                   
                x =1 y = 4
       
                F2(0,F2(1, 3))
                x =1 y = 3
       
                    F2(0,F2(1, 2))
                    x =1 y = 2
                   F2(0,F2(1, 1))
                    RETURN 4      
                   
                    x =1 y = 16
                               F2(0,F2(1, 15))
                                x =1 y = 15
                               F2(0,F2(1, 14))
                                x =1 y = 14
                               F2(0,F2(1, 13))
                                x =1 y = 13
                               F2(0,F2(1, 12))
                                x =1 y = 12
                               F2(0,F2(1, 11))
                                x =1 y = 11
                               F2(0,F2(1, 10))
                                x =1 y = 10
                               F2(0,F2(1, 9))
                                x =1 y = 9
                               F2(0,F2(1, 8))
                                x =1 y = 8
                               F2(0,F2(1, 7))
                                x =1 y = 7
                               F2(0,F2(1, 6))
                                x =1 y = 6
                               F2(0,F2(1, 5))
                                x =1 y = 5
                               F2(0,F2(1, 4))
                                x =1 y = 4
                               F2(0,F2(1, 3))
                                x =1 y = 3
                               F2(0,F2(1, 2))
                                x =1 y = 2
                               F2(0,F2(1, 1))
                               
   
    All iternal sub function returned in stack format and result to pop out to compute final expression.
    RESULT = 4
    RESULT = 8
    RESULT = 16
    RESULT = 32
    RESULT = 64
    RESULT = 128
    RESULT = 256
    RESULT = 512
    RESULT = 1024
    RESULT = 2048
    RESULT = 4096
    RESULT = 8192
    RESULT = 16384
    RESULT = 32768
    RESULT = 65536
    RESULT = 65536
    RESULT = 65536
Final value of F(3,3) = 65536
 =========================================================



