⚙️ rules - Kural Motoru
Business Rules, Pattern Matching, Inference
37
function
612
lines
19 KB
Boyut
🚀 Quick Start
import rules
// Rule engine
let engine = rules.engine_new()
// Add rules
rules.add_rule(engine, "discount_vip", function(facts) do
if facts["customer_type"] == "VIP" do
facts["discount"] = 20.0
return true
end
return false
end)
rules.add_rule(engine, "discount_bulk", function(facts) do
if facts["quantity"] > 100 do
facts["discount"] = 15.0
return true
end
return false
end)
// Execute
let facts = do
"customer_type": "VIP",
"quantity": 50,
"price": 100.0
end
rules.execute(engine, facts)
yazdır("İndirim: %" + facts["discount"].yazıya())
💡 Exampleler
Loan Approval System
import rules
let loan_engine = rules.engine_new()
rules.add_rule(loan_engine, "high_income", function(facts) do
if facts["annual_income"] > 100000 do
facts["score"] = facts.get("score", 0) + 30
return true
end
return false
end)
rules.add_rule(loan_engine, "good_credit", function(facts) do
if facts["credit_score"] > 700 do
facts["score"] = facts.get("score", 0) + 40
return true
end
return false
end)
rules.add_rule(loan_engine, "low_debt", function(facts) do
if facts["debt_ratio"] < 0.3 do
facts["score"] = facts.get("score", 0) + 30
return true
end
return false
end)
rules.add_rule(loan_engine, "approve", function(facts) do
if facts.get("score", 0) >= 70 do
facts["approved"] = true
end else do
facts["approved"] = false
end
return true
end)
// Test
let application = do
"annual_income": 120000,
"credit_score": 750,
"debt_ratio": 0.25
end
rules.execute(loan_engine, application)
yazdır("Onaylandı: " + application["approved"].yazıya())
yazdır("Skor: " + application["score"].yazıya())