Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

iOS Swift Closures Functions as First Class Citizens Higher Order Functions

Justin Bane
Justin Bane
7,850 Points

I call foul on the first question

Nowhere in the code of the video is there an example of passing functions as a parameter... and when I put code in matching the documentation you link to for passing a function as a parameter... IT STILL DOESNT CHECK OUT.

I just want to continue... can we make this question more relevant to the video we just watched?

higherOrderFunctions.swift
/** 
  For this code challenge, let’s define a math operation as a function that 
  carries out some work on two integers and returns an integer as well. An 
  example is the function below, `differenceBetweenNumbers`, which takes two 
  integers and calculates the difference between the numbers. After calculating, 
  it returns the difference.
*/

func differenceBetweenNumbers(a: Int, b:Int) -> (Int) {
  return a - b
}

// Enter your code below
Martin Wildfeuer
Martin Wildfeuer
Courses Plus Student 11,071 Points

The video right before the assignment explains the concept: Functions as Parameters. Other than that, the answer below is correct :)

2 Answers

Chris Adamson
Chris Adamson
132,143 Points

The challenge is looking for a function as the first parameter, so you create a parameter with the method signature, and then add 2 more parameters to be passed to it:

func mathOperation(mathOp: (Int, Int) -> Int, a: Int, b: Int) -> (Int) {
  return mathOp(a, b)
}
Justin Bane
Justin Bane
7,850 Points

GAH! ... had my parameter function set to return a function not just an INT

Jared Watkins
Jared Watkins
10,756 Points

The example shown in the Functions as Parameters video looks like this:

func displayString(printStringFunc: (String) -> Void) {
    printStringFunc("I'm a function inside another function")
}