[swift-evolution] Add "maybe" keyword / Explicit Support for Ternary Logic

Developer devteam.codafi at gmail.com
Thu Jan 7 20:10:14 CST 2016


I’m not sure I understand what you intend to do here.  If you mean to introduce a non-determinism type, that’s what the list monad is for.  If you want true trivalent logic, then the type Tern you describe is precisely the type that it corresponds to.


> On Jan 7, 2016, at 7:03 PM, Dave via swift-evolution <swift-evolution at swift.org> wrote:
> 
> Does anyone else occasionally do stuff like this?
> typealias Tern = Bool?
> let maybe:Tern = nil
> 
> Personally, I’ve only needed it a couple times, but it seems like it could be useful. Maybe Tern should be its own enum instead of a typealias. 
> Either way, aesthetically speaking, it’d be nice to have “maybe” be colored the same as “true” and “false”.
> 
> I’m not sure if there’s a generally agreed-upon ternary truth-table, especially for code like:
> 	if maybe == true {
>> 	} else {
>> 	}
> 
> (Come to think of it, didn’t someone suggest abandoning:
> 	if something == something_else {
>> 	} else {
>> 	}
> in favor of:
> 	switch (something == something_else) {
> 	case true: …
> 	case false: …
> 	}
> If so, that’d clean up the syntax since switches have to be exhaustive anyway… If a comparison results in a Tern you need to have a maybe case, if it results in a Bool you don’t.
> 
> 
> 
> Anyway, thoughts?
> 
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution



More information about the swift-evolution mailing list