//: 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)