Sha256: cc009ad6bff8a6369ac753149728f1fd144d234041eb7590c30736fa67b62cc7

Contents?: true

Size: 839 Bytes

Versions: 4

Compression:

Stored size: 839 Bytes

Contents

# frozen_string_literal: true

require_relative 'specification'
require_relative 'context'

module MiniKraken
  module Core
    # Formally, a n-relation over R, where R represents the cartesian product
    # (A1 x A2 x ... An) is a subset of R.
    # In other words, a n-relation is a subset of all tuples represented by R.
    # In MiniKraken, a n-relation is an object that indicates whether a given
    # tuple -of length n- is valid (or non valid).
    class Relation < Specification
      # Abstract method to override in subclass(es).
      # @param actuals [Array<Term>] Argument count must
      # @param ctx [Core::Context] Runtime context
      # @return [#resume] A Fiber-like object that yields Context.
      def solver_for(actuals, ctx)
        raise NotImplementedError
      end
    end # class
  end # module
end # module

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
mini_kraken-0.3.03 lib/mini_kraken/core/relation.rb
mini_kraken-0.3.02 lib/mini_kraken/core/relation.rb
mini_kraken-0.3.01 lib/mini_kraken/core/relation.rb
mini_kraken-0.3.00 lib/mini_kraken/core/relation.rb