//: Playground - noun: a place where people can play import Cocoa struct Fraction { var numerator = 0 var denominator = 1 } var fraction1 = Fraction(numerator:2, denominator:5) var fraction2 = Fraction(numerator:7, denominator:10) func + (f1: Fraction, f2: Fraction) -> Fraction { var denomproposed = f1.denominator * f2.denominator var numproposed = f1.numerator * f2.denominator + f2.numerator * f1.denominator for var i = (denomproposed / 2); i>1; i-- { if (denomproposed % i) == 0 && (numproposed % i) == 0 { denomproposed /= i numproposed /= i } } return Fraction(numerator: numproposed, denominator: denomproposed) } func - (f1: Fraction, f2: Fraction) -> Fraction { var denomproposed = f1.denominator * f2.denominator var numproposed = f1.numerator * f2.denominator - f2.numerator * f1.denominator for var i = (denomproposed / 2); i>1; i-- { if (denomproposed % i) == 0 && (numproposed % i) == 0 { denomproposed /= i numproposed /= i } } return Fraction(numerator: numproposed, denominator: denomproposed) } func * (f1: Fraction, f2: Fraction) -> Fraction { var denomproposed = f1.denominator * f2.denominator var numproposed = f1.numerator * f2.numerator for var i = (denomproposed / 2); i>1; i-- { if (denomproposed % i) == 0 && (numproposed % i) == 0 { denomproposed /= i numproposed /= i } } return Fraction(numerator: numproposed, denominator: denomproposed) } func / (f1: Fraction, f2: Fraction) -> Fraction { var denomproposed = f1.denominator * f2.numerator var numproposed = f1.numerator * f2.denominator for var i = (denomproposed / 2); i>1; i-- { if (denomproposed % i) == 0 && (numproposed % i) == 0 { denomproposed /= i numproposed /= i } } return Fraction(numerator: numproposed, denominator: denomproposed) } println(fraction1 + fraction2) println(fraction1 - fraction2) println(fraction1 * fraction2) println(fraction1 / fraction2)