Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

276
Vistas
Tau Prolog: cómo convertir una lista de prólogos en una matriz de JavaScript

Quiero usar Tau Prolog junto con JavaScript en un servidor de nodos, siguiendo este tutorial , que funciona bien. Necesito convertir las respuestas en un formato compatible con JavaScript, especialmente listas en matrices u objetos y viceversa.

Cambié el programa Prolog y el objetivo de manera que devuelve una lista

Programa: test(t, [64,65,100,120]).

Objetivo: test(t, X).

que vuelve con

 console.log(session.format_answer(answer)); X = [64,65,100,120]

también la consola. ¿Cómo puedo obtener solo la lista y asignarla a una variable js?

Lo intenté

 answer.lookup("X")

que me da

 Term { ref: 1258, id: '.', args: [ Num { is_float: false, value: 64 }, Term { ref: 1257, id: '.', args: [Array], indicator: './2' } ], indicator: './2' }

Lo cual no es muy cómodo de acceder. La matriz args parece ser la lista. Logré obtener elementos de una sola lista con

 console.log(answer.links.X.args[1].args[1].args);

para obtener el tercer elemento de la lista.
¿Cuál es la mejor manera de usar respuestas y listas complejas en JavaScript?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Solo para completar, reproduzco esta respuesta aquí.

Puede escribir una función para transformar listas de Prolog en matrices:

 function fromList(xs) { var arr = []; while(pl.type.is_term(xs) && xs.indicator === "./2") { arr.push(xs.args[0]); xs = xs.args[1]; } if(pl.type.is_term(xs) && xs.indicator === "[]/0") return arr; return null; }

Ejemplo:

 var session = pl.create(); session.query("X = [1,2,3]."); session.answer(a => console.log(fromList(a.lookup("X")))); // [ {...}, {...}, {...} ]

Tenga en cuenta que los elementos de la matriz siguen siendo objetos Tau Prolog .

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda