Pregunta

Estoy tratando de implementar algunos algoritmos de planificación de IA en C, pero me quedé atrapado con el concepto básico :)
Antes de saltar al problema principal, intenté implementar un marco pequeño que respaldaría la lógica proposicional:

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

Ahora, el problema es que me gustaría no evaluar las expresiones como 'A + 3> 0' en el momento de definir la fórmula, sino en alguna fase posterior:

bool res = EVALUATE(f);

Supongo que los cierres habrían sido útiles en este caso, pero desafortunadamente también me gusta seguir con C99.

Alguna idea ?
¿Qué tal extender esto a la lógica predicada?

El objetivo final (idealmente) sería construir una biblioteca de planificación de IA, que se puede conectar directamente a la aplicación y no recibir el problema como cadenas de programas.

Gracias

¿Fue útil?

Solución

OK,

Como se comentó anteriormente, he resuelto el problema utilizando una estructura con puntero de método y datos en él. Esta es la forma más común de simular los cierres en C.

Mi implementación está disponible aquí:https://github.com/pmilosev/clumsy

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top