J'ai une question très simple pour les programmeurs Prolog. Cela devrait être très facile, mais je n'ai aucune expérience avec cette langue alors s'il vous plaît aider. J'essaie d'interpréter un langage de programmation simple dans Prolog. Dans cette langue, je peux avoir deux types de variables - des variables simples et des variables de tableau. J'ai une fonction qui calcule la valeur de la variable donnée:Comment faire correspondre les variables enveloppées dans PROLOG sans la coupe?
%calc(+var, +state, -result)
variable peut être une simple variable comme x
ou variable de tableau comme array(ident, index)
. Je ne sais pas comment je devrais écrire cette fonction dans Prolog, donc cela fait des choses différentes pour les variables régulières et de tableau. Je suis venu avec quelque chose comme ceci:
calc(array(Ident,I), S, R) :- calculating R for array var, !.
calc(Ident, S, R) :- calculating R for regular var.
Cela fonctionne, mais il doit y avoir une meilleure façon.
Il n'y a pas vraiment beaucoup de détails ici pour dire s'il y a un bien meilleur moyen, mais ce que vous avez là-bas semble raisonnable. Si vous voulez éviter la coupure, vous pouvez faire 'calc (Ident, S, R): - (Ident = tableau (Id, I) -> calc_array (Id, I, S, R); calc_var (Ident, S, R) 'ou quelque chose comme ça – lurker
Oui, j'essayais d'éviter la coupure et cela ressemble à un bon moyen de le faire. –