query method

Iterable<Node> query(
  1. Database database,
  2. Term goal
)

Implementation

Iterable<Node> query(Database database, Term goal) {
  final match = head.match(goal);
  if (match == null) return const [];
  final newHead = head.substitute(match);
  final newBody = body.substitute(match);
  return newBody
      .query(database)
      .map((item) => newHead.substitute(newBody.match(item)));
}