¿Hay una manera "correcta" para implementar funciones de orden superior en C.funciones de orden superior en C
Lo que más me curiosidad por cosas como la portabilidad y la sintaxis correcta aquí y si hay más de una forma lo que las los méritos y los defectos son Edit: La razón por la que quiero saber cómo crear funciones de orden superior es que he escrito un sistema para convertir listas de PyObject (que se obtienen al llamar scripts de Python) en una lista de estructuras C que contienen los mismos datos pero organizado de una manera que no depende de las bibliotecas python.h Así que mi plan es tener una función que itere a través de una lista pitonica y llame a una función en cada elemento de la lista y coloque el resultado en una lista que luego devuelve.
Así que esto es básicamente mi plan:
typedef gpointer (converter_func_type)(PyObject *)
gpointer converter_function(PyObject *obj)
{
// do som stuff and return a struct cast into a gpointer (which is a void *)
}
GList *pylist_to_clist(PyObject *obj, converter_func_type f)
{
GList *some_glist;
for each item in obj
{
some_glist = g_list_append(some_glist, f(item));
}
return some_glist;
}
void some_function_that_executes_a_python_script(void)
{
PyObject *result = python stuff that returns a list;
GList *clist = pylist_to_clist(result, converter_function);
}
Y clearify la pregunta: Quiero saber cómo hacer esto en C más seguro y más correcto Realmente me gustaría mantener el estilo función de orden superior pero si eso no está bien visto, aprecio mucho las maneras de hacerlo de otra manera.
Buena pregunta, pero vaga. Parece que hiciste una investigación sobre esto. Considera actualizar tu pregunta para indicar lo que ya has encontrado. Las respuestas dadas son geniales, pero solo pueden ser tan específicas como la pregunta. –