仕様がなさすぎる。なんでもいい。ということなので。
in Swift
swift
1struct Stamp {
2
3 enum StampType {
4 case a
5 case b
6 case failure
7 }
8
9 let date: Int
10 let type: StampType
11
12 init?(date: Int, type: StampType) {
13
14 guard case 0..<7 = date else {
15
16 return nil
17 }
18
19 self.date = date
20 self.type = type
21 }
22}
23
24extension Stamp: CustomStringConvertible {
25
26 var description: String {
27 switch self.type {
28 case .a: return "A"
29 case .b: return "B"
30 case .failure: return "nil"
31 }
32 }
33}
34
35struct RandomStampType: Sequence, IteratorProtocol {
36
37 func next() -> Stamp.StampType? {
38
39 switch arc4random_uniform(3) {
40 case 0: return .a
41 case 1: return .b
42 case 2: return .failure
43 default: return nil
44 }
45 }
46}
47
48zip(Array(0..<7), RandomStampType())
49 .flatMap { Stamp(date: $0.0, type: $0.1) }
50 .forEach { print($0) }
51
解説はありません。