Skip to content

Instantly share code, notes, and snippets.

@joanmolinas
Created April 6, 2015 16:16
Show Gist options
  • Save joanmolinas/646117c41fa8d3dea700 to your computer and use it in GitHub Desktop.
Save joanmolinas/646117c41fa8d3dea700 to your computer and use it in GitHub Desktop.
postfix operator ~ {}
postfix func ~(rhs : Int) -> Int {
var result = 1
for i in reverse(1...rhs){ result *= i }
return result
}
infix operator ~/~ { associativity left precedence 150 }
func ~/~ (lhs : Int, rhs : Int ) -> Int {
assert(lhs > 0, "left number < 0")
assert(rhs > 0, "right number < 0")
return lhs~ / rhs~
}
infix operator ~+~ { associativity left precedence 140 }
func ~+~ (lhs : Int, rhs : Int) -> Int {
assert(lhs > 0, "left number < 0")
assert(rhs > 0, "right number < 0")
return lhs~ + rhs~
}
infix operator ~-~ { associativity left precedence 140 }
func ~-~ (lhs : Int, rhs : Int) -> Int {
assert(lhs > 0, "left number < 0")
assert(rhs > 0, "right number < 0")
return lhs~ - rhs~
}
infix operator ~*~ { associativity left precedence 150 }
func ~*~ (lhs : Int, rhs : Int) -> Int {
assert(lhs > 0, "left number < 0")
assert(rhs > 0, "right number < 0")
return lhs~ * rhs~
}
var divider = 17~/~8 //OUTPUT -> 8,821,612,800
var sum = 5~+~5 //OUTPUT -> 240
var rest = 5~-~4 //OUTPUT -> 96
var mult = 5~*~5 //OUTPUT -> 14,400
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment