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;
}
Run Code Online (Sandbox Code Playgroud)
Haskell也许定义:
data Maybe a = Nothing | Just a
Run Code Online (Sandbox Code Playgroud)
如果你使用这个怎么办?
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;
}
Run Code Online (Sandbox Code Playgroud)
我个人虽然使用了标记的联合和结构(并且enforce它在获取值时是正确的)
| 归档时间: |
|
| 查看次数: |
239 次 |
| 最近记录: |