Question

Je suis en train de mettre en œuvre des algorithmes de planification AI en C, mais est resté coincé avec le concept de base :)
Avant de sauter au problème principal, j'ai essayé de mettre en œuvre un petit cadre qui appuierait la logique propositionnelle:

FORMULA f = PROPOSITION(a + 3 > 0);
FORMULA g = PROPOSITION(is_smaller_than(b, c));
f = AND(NOT(f), g);

Maintenant, le problème est que je voudrais ne pas évaluer les expressions comme « a + 3> 0 » au moment de la définition de la formule, mais dans une phase ultérieure:

bool res = EVALUATE(f);

Je suppose que la fermeture aurait été à portée de main dans ce cas, mais malheureusement je aime aussi de coller à C99.

Toute idée? Que diriez-vous d'étendre cette logique à prédicat?

Le but final (idéalement) serait de construire une bibliothèque de planification AI, qui peut être directement branchée à l'application, et de ne pas recevoir le problème sous forme de chaînes de programme BANDES.

Merci

Était-ce utile?

La solution

OK,

As commented above I have solved the issue by using a structure with method pointer and data in it. This is the most common way of simulating closures in C.

My implementation is available here: https://github.com/pmilosev/clumsy

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top