Advertisement
Guest User

Untitled

a guest
Feb 21st, 2020
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 0.74 KB | None | 0 0
  1. import Foundation
  2.  
  3. extension Numeric {
  4.     func square() -> Self {
  5.         return self * self
  6.     }
  7. }
  8.  
  9. extension Sequence where Element: Numeric {
  10.     func sum() -> Element {
  11.         return reduce(0, +)
  12.     }
  13.  
  14.     func squareEach() -> [Element] {
  15.         return map { $0.square() }
  16.     }
  17. }
  18.  
  19. class Squares {
  20.  
  21.     let inputRange: CountableClosedRange<Int>
  22.  
  23.     init(_ num: Int) {
  24.         let num = num > 0 ? num : 0
  25.         inputRange = 0...num
  26.     }
  27.  
  28.     lazy var squareOfSums: Int = {
  29.         return self.inputRange.sum().square()
  30.     }()
  31.  
  32.     lazy var sumOfSquares: Int = {
  33.         return self.inputRange.squareEach().sum()
  34.     }()
  35.  
  36.     var differenceOfSquares: Int {
  37.         return squareOfSums - sumOfSquares
  38.     }
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement