iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 17
0
自我挑戰組

Julia語言—從入門到專案系列 第 17

[Day 17] Reactive programming--單一元素的實作

實作

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了!
接下來就會是序列元素,甚至擴展到集合元素了。


上一篇
[Day 16] Reactive programming--API設計
下一篇
[Day 21] Simulated annealing -- 演算法
系列文
Julia語言—從入門到專案31

尚未有邦友留言

立即登入留言