⚙️ rules - Kural Motoru
Business Rules, Pattern Matching, Inference
37
Fonksiyon
612
Satır
19 KB
Boyut
🚀 Hızlı Başlangıç
içe_aktar rules
// Rule engine
değişken engine = rules.engine_new()
// Add rules
rules.add_rule(engine, "discount_vip", fonksiyon(facts) yap
eğer facts["customer_type"] == "VIP" ise yap
facts["discount"] = 20.0
dön doğru
son
dön yanlış
son)
rules.add_rule(engine, "discount_bulk", fonksiyon(facts) yap
eğer facts["quantity"] > 100 ise yap
facts["discount"] = 15.0
dön doğru
son
dön yanlış
son)
// Execute
değişken facts = yap
"customer_type": "VIP",
"quantity": 50,
"price": 100.0
son
rules.execute(engine, facts)
yazdır("İndirim: %" + facts["discount"].yazıya())
💡 Örnekler
Loan Approval System
içe_aktar rules
değişken loan_engine = rules.engine_new()
rules.add_rule(loan_engine, "high_income", fonksiyon(facts) yap
eğer facts["annual_income"] > 100000 ise yap
facts["score"] = facts.get("score", 0) + 30
dön doğru
son
dön yanlış
son)
rules.add_rule(loan_engine, "good_credit", fonksiyon(facts) yap
eğer facts["credit_score"] > 700 ise yap
facts["score"] = facts.get("score", 0) + 40
dön doğru
son
dön yanlış
son)
rules.add_rule(loan_engine, "low_debt", fonksiyon(facts) yap
eğer facts["debt_ratio"] < 0.3 ise yap
facts["score"] = facts.get("score", 0) + 30
dön doğru
son
dön yanlış
son)
rules.add_rule(loan_engine, "approve", fonksiyon(facts) yap
eğer facts.get("score", 0) >= 70 ise yap
facts["approved"] = doğru
son değilse yap
facts["approved"] = yanlış
son
dön doğru
son)
// Test
değişken application = yap
"annual_income": 120000,
"credit_score": 750,
"debt_ratio": 0.25
son
rules.execute(loan_engine, application)
yazdır("Onaylandı: " + application["approved"].yazıya())
yazdır("Skor: " + application["score"].yazıya())