#include <libguile.h>
#include <pthread.h>
-int contador = 0;
-int incremento = 1;
-
SCM prueba () {
int flags;
void *bucle () {
while (1) {
- contador = contador + incremento;
- if (contador > 1000) incremento = -1;
- else if (contador < 0) incremento = 1;
+ scm_c_eval_string("(define contador (+ contador incremento))");
+ scm_c_eval_string("(if (> contador 1000) (define incremento -1))");
+ scm_c_eval_string("(if (< contador 0) (define incremento 1))");
}
pthread_exit(NULL);
}
return SCM_UNSPECIFIED;
}
-SCM ver_contador () {
+/*SCM ver_contador () {
return scm_from_int(contador);
-}
+}*/
static void*
register_functions (void* data)
{
scm_c_define_gsubr ("prueba", 0, 0, 0, &prueba);
- scm_c_define_gsubr ("ver-contador", 0, 0, 0, &ver_contador);
+// scm_c_define_gsubr ("ver-contador", 0, 0, 0, &ver_contador);
scm_c_define_gsubr ("lanzar-bucle", 0, 0, 0, &lanzar_bucle);
return NULL;
}
int main (int argc, char *argv[]) {
-/* GSCM_status status;
- GSCM_top_level toplev;
-
- status = gscm_eval_str(NULL, toplev, "(use-modules (ice-9 readline))");
- status = gscm_eval_str(NULL, toplev, "(activate-readline)");
-*/
scm_with_guile (®ister_functions, NULL);
scm_c_eval_string("(set-repl-prompt! \"gacela>\")");
scm_c_eval_string("(use-modules (ice-9 readline))");
scm_c_eval_string("(activate-readline)");
+ scm_c_eval_string("(define contador 0)");
+ scm_c_eval_string("(define incremento 1)");
scm_shell (argc, argv);
}