Module: Factbase::Ordering
- Included in:
- Term
- Defined in:
- lib/factbase/terms/ordering.rb
Overview
Ordering terms.
- Author
-
Yegor Bugayenko ([email protected])
- Copyright
-
Copyright © 2024-2025 Yegor Bugayenko
- License
-
MIT
Instance Method Summary collapse
Instance Method Details
#prev(fact, maps, fb) ⇒ Object
14 15 16 17 18 19 20 |
# File 'lib/factbase/terms/ordering.rb', line 14 def prev(fact, maps, fb) assert_args(1) before = @prev v = _values(0, fact, maps, fb) @prev = v before end |
#unique(fact, maps, fb) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/factbase/terms/ordering.rb', line 22 def unique(fact, maps, fb) @seen = Set.new if @seen.nil? raise "Too few operands for 'unique' (at least 1 expected)" if @operands.empty? vv = (0..(@operands.size - 1)).map { |i| _values(i, fact, maps, fb) } return false if vv.any?(nil) pass = true Enumerator.product(*vv).to_a.each do |t| pass = false if @seen.include?(t) @seen << t end pass end |