class Frypan::Signal
Signal
: Abstraction of time-varing value
Public Class Methods
async_input(buf_size=1, &proc)
click to toggle source
# File lib/frypan.rb, line 46 def self.async_input(buf_size=1, &proc) InputThread.new(buf_size, &proc)[0] end
const(val)
click to toggle source
Utility Class methods (public to library-user)
# File lib/frypan.rb, line 38 def self.const(val) Const.new(val) end
foldp(init_state, *arg_signals, &proc)
click to toggle source
# File lib/frypan.rb, line 54 def self.foldp(init_state, *arg_signals, &proc) Foldp.new(init_state, *arg_signals, &proc) end
input(&proc)
click to toggle source
# File lib/frypan.rb, line 42 def self.input(&proc) Input.new(&proc) end
lift(*arg_signals, &proc)
click to toggle source
# File lib/frypan.rb, line 50 def self.lift(*arg_signals, &proc) Lift.new(*arg_signals, &proc) end
Public Instance Methods
__pull(memo0, memo1, memo2)
click to toggle source
Implementation of each Signals (library-user need not understand)
# File lib/frypan.rb, line 76 def __pull(memo0, memo1, memo2) if memo0.has_key?(self) memo0 else __calc(__pull_deps(memo0, memo1, memo2), memo1, memo2) end end
__pull_deps(memo0, memo1, memo2)
click to toggle source
# File lib/frypan.rb, line 84 def __pull_deps(memo0, memo1, memo2) memo0 end
__same(memo_a, memo_b)
click to toggle source
# File lib/frypan.rb, line 88 def __same(memo_a, memo_b) memo_a.has_key?(self) && memo_b.has_key?(self) && memo_a[self] == memo_b[self] end
foldp(init_state, &proc)
click to toggle source
# File lib/frypan.rb, line 69 def foldp(init_state, &proc) Foldp.new(init_state, self, &proc) end
lift(&proc)
click to toggle source
# File lib/frypan.rb, line 65 def lift(&proc) Lift.new(self, &proc) end
method_missing(name, *args, &proc)
click to toggle source
Utility Instance methods (public to library-user)
# File lib/frypan.rb, line 61 def method_missing(name, *args, &proc) Lift.new(self){|a| a.send(name, *args, &proc)} end