J'essaie de formater un résultat à partir d'un programme, mais j'ai du mal à le faire.Concaténation de terme Prolog
Je voulais donner quelque chose comme ceci comme résultat:
Res = do(paint(x) do(clean(a), do(repair(b) , initialState)))
essentiellement, je veux concaténer termes successifs à initialState atome mais, il ne fonctionne pas avec atom_concat puisque les autres termes de concaténer ne sont pas atomes et aussi je voulais ajouter le) chaque fois que je passe par la fonction "faire". Donc, ce serait quelque chose comme: Res = initialState.
Lorsque la fonction a été appelée faire, je l'aurais fonction comme
concatenateTerm(Pred, Res, Res).
Pred beeing réparation (b) par exemple, et obtenir le résultat: res = do(repair(b),
initialState).
Est-ce possible?
Merci
Probablement je ne vous comprends pas, mais ... Je suppose que vous voulez dire 'concatenateTerm (Pred, Res, ResNext)'. Dans ce cas, définissez-le comme 'concatenateTerm (A, B, faire (A, B)).'. – ony
mais concatenateterm ne me donnerait pas res en conséquence. Je pourrais faire Temp = Res, puis appeler concatenateTerm (Pred, Temp, Res), qui concaténerait Pred avec Temp et donnerait le résultat sur Res mais encore une fois, il ne fonctionne pas avec atom_concat car il échoue avec des termes non atomiques. et aussi il ne serait pas ajouter le) à la fin. – d0pe
Vous souhaitez construire un terme compliqué à partir de termes plus simples? –