Avatar
Taketo Sano 4/1/2018 2:42 PM
conditional conformance を使って、 𝐙/n𝐙 が n: 素数のときに限って体になるというのが表現できました👍 typealias A = IntegerQuotientRing<_5> // 5 は素数 let a = A(4) let b = A(3) print(a / b) // 割り算ができる typealias A = IntegerQuotientRing<_4> // 4 は素数でない! let a = A(4) let b = A(3) print(a / b) // 割り算ができないのでちゃんとエラー (edited)
👏 2
2:42 PM
型パラメータとして扱いたい整数を public struct _4 : _Int { public static let intValue = 4 } public struct _5 : _Prime { public static let intValue = 5 } のように直接定義していますw (edited)