 var teacherName = "Sheets";
 
 sayHiTeacher8(name: &teacherName, "Swift 1")
-
-print(teacherName)
 //: The above variable `teacherName`'s value was changed within the function body and now has a new value.
 /*:
  ## Return values

sayHiTeacher6(name: "Mr. Sheets", classNames: "Swift 1", "Swift 2", "Swift 3")
/*:
 ### Constant and Variable Parameters
 By default function parameters are defined as constants, meaning that you are not allowed to change the value. You can also define parameters as variable, providing you the ability to change the value and not define another variable with in your function.
 */
// TODO, TODO, TODO, TODO
func sayHiTeacher7(teacherName name: String, className: String) {
    
    var name = name

}
sayHiTeacher3(teacherName: "Mr. Sheets", className: "Swift")
/*:
 ### Omitting Argument Label Names
 You can omit *argument label* names by placing the underscore `_` in front of the *parameter name*.
 */
func sayHiTeacher4(_ name: String, _ className: String) {
    
    print("Hi \(name), from my \(className) class");
}
sayHiTeacher4("Mr. Sheets", "Swift")
/*:
 ### Default Parameter Values
 Function parameters can be set to a default value and omitted from a function call. It's recommended that you place all defaulted parameters at the end of the parameter list.
