Prolog Ou(;) Règle Retourner Plusieurs Résultats
j'ai de définir une règle ou de l'opérateur, mais il retour à de multiples vrai ou faux.
isloanaccept(Name,Guarantor,LoanType,LoanAmount,LoanTenure)
:- customer(Name,bank(_),customertype(_),
citizen(Ci),age(Age),credit(C),
income(I),property(_),bankemployee(_)),
Ci == 'malaysian',
Age >= 18,
C > 500,
I > (LoanAmount /LoanTenure) /12,
isguarantor(Guarantor,Name),
ispersonalloan(LoanType,LoanAmount,LoanTenure);
ishouseloan(LoanType,LoanAmount,LoanTenure);
isbusinessloan(LoanType,LoanAmount,LoanTenure);
iscarloan(LoanType,LoanAmount,LoanTenure).
En fait, j'ai besoin de vérifier si le type de prêt est de remplir le prêt de l'exigence et de la combiner avec la règle générale.
En d'autres termes, j'ai besoin de définir la règle ci-dessus comme ceci.
Ci == 'malaysian', Age >= 18,C > 500,
I > (LoanAmount /LoanTenure) /12,
isguarantor(Guarantor,Name)
Or with (ispersonalloan(LoanType,LoanAmount,LoanTenure);
ishouseloan(LoanType,LoanAmount,LoanTenure);
isbusinessloan(LoanType,LoanAmount,LoanTenure);
iscarloan(LoanType,LoanAmount,LoanTenur)
Il doit retourner 1 vrai/faux plutôt que de multiples instruction dans la ligne de commande.
Chacune de la ou de la règle de retour 1 valeur booléenne qui n'est pas que je veux après avoir vérifié la règle dans la ligne de commande. J'ai besoin d'avoir comme ceci (en Règle Générale & (Multiple Ou Règle) ).
Comment combiner plusieurs ou de la règle de retour 1 valeur booléenne ?
S'il vous plaît aider.
Grâce.
OriginalL'auteur nicholas | 2010-07-28
Vous devez vous connecter pour publier un commentaire.
Juste surround tous vos "ou ed" objectifs avec
once
.par exemple
Maintenant, le "ou ed" objectifs de réussir ou d'échouer.
OriginalL'auteur Michael Eichberg
Tout d'abord, vous devriez mettre
(
et)
autour de votre cible combinée avec;
. Parce qu'actuellement, il l'interprète comme la disjonction decustomer(...),...,isguarantor(Guarantor,Name), ispersonalloan(...)
,ishouseloan(...)
, ...,iscarloan(...)
. C'est parce que les différentes priorités des opérateurs,
et;
.Fait
;
- moyen réel "ou", pas de "mutuelle ou exclusif" et non pas "dans les autres cas". Donc, si "ishouseloan" peut " réussir ensemble avec "ispersonalloan" que vous aurez plusieurs objectifs retenus. Dans cet exempleonce/1
peut aider (ainsinot(not(...))
), mais vous pouvez essayer d'obtenir prolog plus profonde avec votre tâche et préciser les non-everlapping cibles comme (je ne certaines hypothèses quant au chevauchement desisXXX
):Dans ce cas, vous devriez être en mesure de générer tous les prêts lors de votre
LT
,Am
etT
n'est pas encore lié à des valeurs spécifiques et ceuxisXXX
pouvez lier des variables libres.OriginalL'auteur ony