Open munro opened 2 years ago
perhaps something like this 🥲
import logica as lg
from logica import var, rule
# Define natural numbers from 1 to 29.
N = rule("N", var.x).body(
var.x.in_(lg.range(30))
)
# Define primes.
Prime = rule("Prime", prime=var.x).body(
N(var.x),
var.x > 1,
lg.not_(
N(var.y),
var.y > 1,
var.y != var.x,
var.x % var.y == 0
)
)
# Define natural numbers from 1 to 29.
N(x) :- x in Range(30);
# Define primes.
Prime(prime: x) :-
N(x),
x > 1,
~(
N(y),
y > 1,
y != x,
x % y == 0
);
It would be really nice if there was a Python eDSL so that I could write queries in Python, which I have much better tooling for. 😄