Module: TinyFRP
- Defined in:
- lib/tiny_frp.rb,
lib/tiny_frp/version.rb
Defined Under Namespace
Classes: Bundle, Composite, Foldp, Lift, Node
Constant Summary
collapse
- VERSION =
"1.0.0"
Class Method Summary
collapse
Class Method Details
.loop(node, &proc) ⇒ Object
11
12
13
14
15
16
17
18
|
# File 'lib/tiny_frp.rb', line 11
def self.loop(node, &proc)
last_memo = {}
loop {
memo = node.call({}, last_memo)
proc.call(*memo[node])
last_memo = memo
}
end
|
.process(node, n) ⇒ Object
4
5
6
7
8
9
|
# File 'lib/tiny_frp.rb', line 4
def self.process(node, n)
n.times.inject(res: [], last_memo: {}){|acc|
memo = node.call({}, acc[:last_memo])
{res: acc[:res] + [memo[node]], last_memo: memo}
}[:res]
end
|