immutable Disposible <: Functor
value
end
function get(d::Disposible)
return d.value
end
function (d::Disposible)(f::Function, g::Function)
return d(init_task(f, g))
end
function (d::Disposible)(t::Task)
return consume(t, d)
end
這裡我宣告了一個Disposible
的型別,他是Functor
的子型別,然後覆寫get
函數。
接著將Disposible
包裝為一個function-like object,所以來demo一下吧!
Disposible(5)(map, x -> x+5)(map, x -> x*2)
回傳
Disposible(5) -> Disposible(10)
Disposible(10) -> Disposible(20)
這樣或許就算是完成單一元素的reactive programming了!
接下來就會是序列元素,甚至擴展到集合元素了。