⚙️ 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())

← Tüm Modüller