Bird
Raised Fist0
Swiftprogramming~5 mins

Why functions are first-class in Swift - Quick Recap

Choose your learning style10 modes available
Recall & Review
beginner
What does it mean that functions are first-class citizens in Swift?
It means functions can be treated like any other value: assigned to variables, passed as arguments, and returned from other functions.
Click to reveal answer
beginner
How can you store a function in a variable in Swift?
You assign the function name without parentheses to a variable with a matching function type.
Click to reveal answer
intermediate
Why is treating functions as first-class useful in Swift?
It allows flexible code like callbacks, higher-order functions, and functional programming patterns.
Click to reveal answer
intermediate
Give an example of passing a function as an argument in Swift.
You can pass a function name to another function expecting a function parameter, e.g., array.map(someFunction).
Click to reveal answer
intermediate
Can Swift functions be returned from other functions? What does this enable?
Yes, returning functions enables creating customized functions dynamically and supports closures and functional patterns.
Click to reveal answer
What does it mean for functions to be first-class in Swift?
AThey can be assigned to variables and passed around like values
BThey must always be declared inside classes
CThey cannot be returned from other functions
DThey are only used for UI events
How do you assign a function to a variable in Swift?
ACall the function with parentheses
BUse the function name without parentheses
CUse the 'func' keyword again
DYou cannot assign functions to variables
Which of these is a benefit of first-class functions in Swift?
ADisables closures
BPrevents functions from being reused
CEnables passing functions as arguments
DMakes functions slower
Can Swift functions be returned from other functions?
AYes, functions can be returned
BNo, only values can be returned
COnly closures can be returned
DFunctions must be global
What is a common use case for first-class functions in Swift?
AWriting only procedural code
BDeclaring global variables
CAvoiding closures
DUsing callbacks and higher-order functions
Explain why functions being first-class citizens is important in Swift programming.
Think about how you can use functions like variables.
You got /4 concepts.
    Describe how you can use a function as an argument or return value in Swift.
    Consider how functions can be passed or returned just like numbers or strings.
    You got /4 concepts.

      Practice

      (1/5)
      1. Why are functions considered first-class citizens in Swift?
      easy
      A. Because functions can be assigned to variables and passed as arguments
      B. Because functions cannot return values
      C. Because functions must always be declared globally
      D. Because functions cannot be nested inside other functions

      Solution

      1. Step 1: Understand what first-class means in Swift

        First-class means functions can be treated like any other value, such as assigned to variables or passed around.
      2. Step 2: Identify the correct property of functions in Swift

        Swift allows functions to be stored in variables and passed as arguments, which matches the definition of first-class citizens.
      3. Final Answer:

        Because functions can be assigned to variables and passed as arguments -> Option A
      4. Quick Check:

        Functions as values = Because functions can be assigned to variables and passed as arguments [OK]
      Hint: Remember: first-class means functions act like normal values [OK]
      Common Mistakes:
      • Thinking functions cannot be passed as arguments
      • Believing functions must be global only
      • Assuming functions cannot return values
      2. Which of the following is the correct way to assign a function to a variable in Swift?
      easy
      A. let greet = func sayHello() { print("Hello") }
      B. let greet = sayHello
      C. func greet = sayHello()
      D. var greet: sayHello = func()

      Solution

      1. Step 1: Recall Swift syntax for assigning functions

        In Swift, you assign a function by its name without parentheses to a variable or constant.
      2. Step 2: Check each option for correct syntax

        let greet = sayHello correctly assigns the function name without calling it. Other options have syntax errors or misuse keywords.
      3. Final Answer:

        let greet = sayHello -> Option B
      4. Quick Check:

        Assign function by name without () = let greet = sayHello [OK]
      Hint: Assign function by name only, no parentheses [OK]
      Common Mistakes:
      • Adding parentheses when assigning function
      • Using 'func' keyword in assignment
      • Incorrect variable declaration syntax
      3. What will be the output of this Swift code?
      func multiplyByTwo(_ number: Int) -> Int {
          return number * 2
      }
      
      let operation = multiplyByTwo
      print(operation(5))
      medium
      A. 5
      B. multiplyByTwo
      C. 10
      D. Error: Cannot assign function to variable

      Solution

      1. Step 1: Understand function assignment and call

        The function multiplyByTwo is assigned to 'operation' without calling it, so 'operation' is a function reference.
      2. Step 2: Call the function through the variable

        Calling operation(5) runs multiplyByTwo(5), which returns 5 * 2 = 10.
      3. Final Answer:

        10 -> Option C
      4. Quick Check:

        Function call via variable returns 10 [OK]
      Hint: Calling assigned function runs original logic [OK]
      Common Mistakes:
      • Expecting variable to hold result, not function
      • Confusing function name with string output
      • Thinking assignment causes error
      4. Identify the error in this Swift code snippet:
      func add(_ a: Int, _ b: Int) -> Int {
          return a + b
      }
      
      let sum = add(3, 4)
      let operation = add(3, 4)
      print(operation(5, 6))
      medium
      A. Function add is not defined properly
      B. Missing return statement in add function
      C. Cannot assign function call to a constant
      D. Cannot call operation as a function because it holds an Int, not a function

      Solution

      1. Step 1: Analyze variable assignments

        sum is assigned the result of add(3, 4), which is an Int (7). operation is also assigned add(3, 4), so operation is an Int, not a function.
      2. Step 2: Check the call to operation(5, 6)

        Since operation is an Int, calling operation(5, 6) causes an error because Int is not callable.
      3. Final Answer:

        Cannot call operation as a function because it holds an Int, not a function -> Option D
      4. Quick Check:

        Calling Int as function causes error = Cannot call operation as a function because it holds an Int, not a function [OK]
      Hint: Assign function name, not function call, to variable [OK]
      Common Mistakes:
      • Assigning function call instead of function reference
      • Expecting function call to be callable again
      • Ignoring type mismatch errors
      5. How can you write a Swift function that returns another function which adds a fixed number to its input? For example, calling makeAdder(3)(5) should return 8.
      hard
      A. func makeAdder(_ x: Int) -> (Int) -> Int { return { y in x + y } }
      B. func makeAdder(_ x: Int) -> Int { return x + y }
      C. func makeAdder(x: Int, y: Int) -> Int { return x + y }
      D. func makeAdder(_ x: Int) -> (Int) { return x }

      Solution

      1. Step 1: Understand the requirement for returning a function

        The function makeAdder must return another function that takes an Int and adds it to x.
      2. Step 2: Check which option returns a function type

        func makeAdder(_ x: Int) -> (Int) -> Int { return { y in x + y } } returns a closure (function) of type (Int) -> Int that adds x and y, matching the requirement.
      3. Final Answer:

        func makeAdder(_ x: Int) -> (Int) -> Int { return { y in x + y } } -> Option A
      4. Quick Check:

        Return function adding x to input = func makeAdder(_ x: Int) -> (Int) -> Int { return { y in x + y } } [OK]
      Hint: Return a closure capturing x to add later [OK]
      Common Mistakes:
      • Returning Int instead of function
      • Not using closure syntax for returned function
      • Incorrect function signature
      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