Bird
Raised Fist0
R Programmingprogramming~5 mins

Recursive functions in R Programming - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a recursive function?
A recursive function is a function that calls itself to solve smaller parts of a problem until it reaches a simple case it can solve directly.
Click to reveal answer
beginner
What is the base case in recursion?
The base case is the simplest situation in a recursive function where the function stops calling itself to avoid infinite loops.
Click to reveal answer
intermediate
How does recursion relate to breaking down problems?
Recursion breaks a big problem into smaller, similar problems, solves each smaller problem, and combines the results to solve the original problem.
Click to reveal answer
intermediate
What happens if a recursive function has no base case?
Without a base case, the function keeps calling itself forever, causing a stack overflow error or program crash.
Click to reveal answer
beginner
Example: What does this R function do?
factorial <- function(n) {
  if (n == 0) return(1)
  else return(n * factorial(n - 1))
}
This function calculates the factorial of a number n by multiplying n by the factorial of n-1 until it reaches 0.
Click to reveal answer
What is the purpose of the base case in a recursive function?
ATo stop the recursion and prevent infinite calls
BTo call the function again
CTo make the function run faster
DTo print the result
In R, how does a recursive function call itself?
ABy using its own name inside the function
BBy using a loop
CBy calling another function
DBy using a variable
What will happen if a recursive function lacks a base case?
AIt will return zero
BIt will run forever and cause an error
CIt will run once and stop
DIt will print a message
Which problem is a good fit for recursion?
AReading a file
BAdding two numbers
CPrinting a message once
DCalculating factorial of a number
What does this R code return?
factorial(3)
A9
B3
C6
D1
Explain how a recursive function works using a real-life example.
Think about how you might solve a big task by doing smaller similar tasks first.
You got /3 concepts.
    Describe why a base case is important in recursive functions.
    What happens if the function never stops calling itself?
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of a base case in a recursive function?
      easy
      A. To stop the recursion and prevent infinite calls
      B. To call the function again with the same input
      C. To increase the input size for the next call
      D. To print the result of the recursion

      Solution

      1. Step 1: Understand recursion basics

        A recursive function calls itself repeatedly with smaller inputs.
      2. Step 2: Identify the role of base case

        The base case stops the recursion to avoid infinite loops and eventual crash.
      3. Final Answer:

        To stop the recursion and prevent infinite calls -> Option A
      4. Quick Check:

        Base case = stop recursion [OK]
      Hint: Base case always stops recursion to avoid infinite loops [OK]
      Common Mistakes:
      • Forgetting the base case causes infinite recursion
      • Thinking base case calls function again
      • Confusing base case with recursive step
      2. Which of the following is the correct syntax to define a recursive function fact in R that calculates factorial?
      easy
      A. fact <- function(n) { repeat n * fact(n - 1) }
      B. fact <- function(n) { while(n > 0) n * fact(n - 1) }
      C. fact <- function(n) { if(n == 1) n + fact(n - 1) }
      D. fact <- function(n) { if(n == 0) 1 else n * fact(n - 1) }

      Solution

      1. Step 1: Check base case and recursive call

        fact <- function(n) { if(n == 0) 1 else n * fact(n - 1) } correctly uses if condition for base case (n == 0) and recursive call with n-1.
      2. Step 2: Identify syntax errors in other options

        Options B, C, and D misuse loops or have wrong base case or missing else.
      3. Final Answer:

        fact <- function(n) { if(n == 0) 1 else n * fact(n - 1) } -> Option D
      4. Quick Check:

        Correct base case and recursive call syntax [OK]
      Hint: Base case uses if, recursive call uses else with smaller input [OK]
      Common Mistakes:
      • Using loops instead of recursion
      • Missing else leads to errors
      • Wrong base case condition
      3. What is the output of this R code?
      fib <- function(n) {
        if (n <= 1) return(n)
        else return(fib(n-1) + fib(n-2))
      }
      fib(4)
      medium
      A. 5
      B. 4
      C. 3
      D. 7

      Solution

      1. Step 1: Trace fib(4) calls

        fib(4) = fib(3) + fib(2); fib(3) = fib(2) + fib(1); fib(2) = fib(1) + fib(0)
      2. Step 2: Calculate values bottom-up

        fib(1)=1, fib(0)=0; fib(2)=1+0=1; fib(3)=1+1=2; fib(4)=2+1=3
      3. Final Answer:

        3 -> Option C
      4. Quick Check:

        Fibonacci(4) = 3 [OK]
      Hint: Fibonacci(4) = 3 by adding previous two values [OK]
      Common Mistakes:
      • Confusing index starting at 0 or 1
      • Adding wrong recursive calls
      • Forgetting base cases
      4. Identify the error in this recursive R function to sum numbers from 1 to n:
      sum_to_n <- function(n) {
        if (n == 1) return(1)
        else return(n + sum_to_n(n))
      }
      sum_to_n(3)
      medium
      A. The recursive call uses the same n, causing infinite recursion
      B. The function should use a loop instead
      C. The base case is missing
      D. The return statement is outside the function

      Solution

      1. Step 1: Check recursive call argument

        The function calls sum_to_n(n) instead of sum_to_n(n-1), so input never decreases.
      2. Step 2: Understand effect of error

        This causes infinite recursion because n stays the same and base case is never reached.
      3. Final Answer:

        The recursive call uses the same n, causing infinite recursion -> Option A
      4. Quick Check:

        Recursive call must reduce input [OK]
      Hint: Recursive call must use smaller input to reach base case [OK]
      Common Mistakes:
      • Calling function with same argument
      • Missing base case
      • Confusing recursion with loops
      5. Write a recursive R function flatten_list that takes a nested list of numbers and returns a flat vector of all numbers.
      What is the correct approach?
      hard
      A. Use recursion but forget to combine results from recursive calls
      B. Check if input is a list; if yes, recursively flatten each element and combine; else return the element as vector
      C. Return the input directly without any processing
      D. Use a for loop to iterate and append elements without recursion

      Solution

      1. Step 1: Identify recursive structure

        Nested lists require checking each element; if it's a list, call flatten_list recursively.
      2. Step 2: Combine results properly

        Combine all flattened elements into one vector to get a flat list of numbers.
      3. Final Answer:

        Check if input is a list; if yes, recursively flatten each element and combine; else return the element as vector -> Option B
      4. Quick Check:

        Recursion + combine results = flatten list [OK]
      Hint: Recursively flatten each list element and combine results [OK]
      Common Mistakes:
      • Not combining recursive results
      • Forgetting to check if element is a list
      • Using loops only without recursion
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard