我想在 D 中实现来自 Haskell 的 Maybe
,只是为了它。
这是我到目前为止所得到的,但不是那么好。任何想法如何改进它?
class Maybe(a = int){ } //problem 1: works only with ints
class Just(alias a) : Maybe!(typeof(a)){ }
class Nothing : Maybe!(){ }
Maybe!int doSomething(in int k){
if(k < 10)
return new Just!3; //problem 2: can't say 'Just!k'
else
return new Nothing;
}
Haskell 也许定义:
data Maybe a = Nothing | Just a
最佳答案
看看 std.typecons.Nullable 。它与 Haskell 中的 Maybe
不完全相同,但它是一种类型,可以选择保存实例化的任何类型的值。因此,实际上,它就像 Haskell 的 Maybe
,尽管在语法上有所不同。如果你想看的话,来源是 here 。
关于haskell - 如何在 D 中实现 Haskell *Maybe* 构造?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8487124/