Class: RDF::N3::Algebra::Math::Exponentiation
- Inherits:
-
ListOperator
- Object
- SPARQL::Algebra::Operator::Binary
- ListOperator
- RDF::N3::Algebra::Math::Exponentiation
- Defined in:
- lib/rdf/n3/algebra/math/exponentiation.rb
Overview
The subject is a pair of numbers. The object is calculated by raising the first number of the power of the second.
Constant Summary collapse
Instance Attribute Summary
Attributes included from Enumerable
Instance Method Summary collapse
-
#resolve(list) ⇒ RDF::Term
The math:difference operator takes a pair of strings or numbers and calculates the exponent.
-
#validate(list) ⇒ Boolean
The list argument must be a pair of literals.
Methods inherited from ListOperator
#as_literal, #execute, #input_operand
Methods included from Builtin
#each, #evaluate, #hash, #input_operand, #rank, #to_uri
Instance Method Details
#resolve(list) ⇒ RDF::Term
The math:difference operator takes a pair of strings or numbers and calculates the exponent.
16 17 18 |
# File 'lib/rdf/n3/algebra/math/exponentiation.rb', line 16 def resolve(list) list.to_a.map(&:as_number).reduce(&:**) end |
#validate(list) ⇒ Boolean
The list argument must be a pair of literals.
26 27 28 29 30 31 32 33 |
# File 'lib/rdf/n3/algebra/math/exponentiation.rb', line 26 def validate(list) if super && list.all?(&:literal?) && list.length == 2 true else log_error(NAME) {"list is not a pair of literals: #{list.to_sxp}"} false end end |