class RubyProlog::TempClause
Public Class Methods
Source
# File lib/ruby-prolog/ruby-prolog.rb, line 54 def initialize(db, pred, args) @db, @pred, @args = db, pred, args end
Public Instance Methods
Source
# File lib/ruby-prolog/ruby-prolog.rb, line 73 def <<(rhs) case rhs when Array si(*rhs) else si(rhs) end end
Source
# File lib/ruby-prolog/ruby-prolog.rb, line 82 def calls(&callback) @db.append(self.to_goal, callback) end
Source
# File lib/ruby-prolog/ruby-prolog.rb, line 58 def si(*rhs) goals = rhs.map do |x| case x when TempClause then x.to_goal when false then Goal.new(0, 'false', []) else x end end @db.append(self.to_goal, list(*goals)) end
Source
# File lib/ruby-prolog/ruby-prolog.rb, line 86 def to_goal Goal.new(@pred.id, @pred.name, @args.map do |arg| case arg when TempClause arg.to_goal else arg end end) end
Private Instance Methods
Source
# File lib/ruby-prolog/ruby-prolog.rb, line 99 def list(*x) y = nil x.reverse_each {|e| y = Cons.new(e, y)} return y end