開発環境
- OS X Mavericks - Apple(OS)
- Xcode 6.0 Beta 6
- Swift (プログラミング言語)
Practical Programming: An Introduction to Computer Science Using Python 3 (Pragmatic Programmers) (Paul Gries (著)、Jennifer Campbell (著)、Jason Montojo (著)、Lynn Beighley (編集)、Pragmatic Bookshelf)のChapter 9(Repeating Code Using Loops)、9.10(Exercises) 10.をSwiftで考えてみる。
9.10(Exercises) 10.
コード(Xcode)
main.swift
// // main.swift // sample10 // // Created by kamimura on 9/12/14. // Copyright (c) 2014 kamimura. All rights reserved. // import Foundation var a = range(start: 10, 0, step: -1) var b = reverse(1...10) var c = reverse(1..<11) for n in a { print("\(n) ") } println() for n in b { print("\(n) ") } println() for n in c { print("\(n) ") } println() println(" ".join(a.map({(n:Int) in String(n)}))) println(" ".join(b.map({(n:Int) in String(n)}))) println(" ".join(c.map({(n:Int) in String(n)})))
array.swift
// // array.swift // array // // Created by kamimura on 8/21/14. // Copyright (c) 2014 kamimura. All rights reserved. // import Foundation extension Array { func indexAt(i:Int) -> T { if i >= 0 { return self[i] } let new_index:Int = self.count + i return self[new_index] } func slice(start:Int = 0, end:Int? = nil) -> Array { var new_start = start >= 0 ? start : self.count + start var new_end:Int if end == nil { new_end = self.count } else if end! >= 0 { new_end = end! } else { new_end = self.count + end! } var result:Array = [] if new_start >= new_end { return [] } for i in new_start..<new_end { result.append(self[i]) } return result } func forEach(f:(T) -> ()) { for e in self { f(e) } } } func sum(nums:[Int]) -> Int { return nums.reduce(0, combine: {(x, y) in x + y}) } func range(start:Int = 0, end:Int, step:Int = 1) -> [Int] { assert(step != 0, "arg 3 must not be zero") var result:[Int] = [] var elem = start if step > 0 { while elem < end { result.append(elem) elem += step } } else { while elem > end { result.append(elem) elem += step } } return result }
入出力結果(Console Output)
10 9 8 7 6 5 4 3 2 1 10 9 8 7 6 5 4 3 2 1 10 9 8 7 6 5 4 3 2 1 10 9 8 7 6 5 4 3 2 1 10 9 8 7 6 5 4 3 2 1 10 9 8 7 6 5 4 3 2 1 Program ended with exit code: 0
0 コメント:
コメントを投稿