Arl*_*len 4 haskell d construct
我想Maybe从D中的Haskell 实现,只是为了它的地狱.这是我到目前为止所得到的,但并不是那么好.任何想法如何改进它?
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
如果你使用这个怎么办?
class Maybe(T){ }  
class Just(T) : Maybe!(T){ 
T t;
this(T t){
this.t = t;
}
}
class Nothing : Maybe!(){ }
Maybe!int doSomething(in int k){
  if(k < 10)
    return new Just!int(3); 
  else
    return new Nothing;
}
我个人虽然使用了标记的联合和结构(并且enforce它在获取值时是正确的)