Informática en general > Dudas informáticas
Que Es Prolog????
ArKaNtOs:
--- Citar ---10 últimos mensajes [ en orden inverso ]
X.Cyclop Escrito el Agosto 09, 2006 04:54 pm
Se nota que es otro paradigma, está raro. ph34r.gif
CODE
:- write('Hello, world'),nl.
--- Fin de la cita ---
jejeje lo raro no esta en imprimir una linea, lo dificil esta en otros aspectos ;)
--- Código: Text ---:- use_module(library(pce)). escribe(Texto):- write(Texto). comienzo(Valor):- componente(Valor, Tipo), resultado(Valor, Tipo), nl, deshacer. arranque:- new(Dialogo, dialog('Adivinador de Componentes de PC')),new(Uso1, menu('¿Es un componente interno o Externo?:', marked)), /*Funciones Send*/ send(Dialogo, append, new(Nom, text_item('¿Cual es su nombre?'))),send(Uso1, append, interno),send(Uso1, append, externo),send(Dialogo, append(Uso1)), send(Dialogo, append, button('Continuar', and( message(@prolog, escribe, Nom?selection), message(@prolog, escribe, ' '), message(@prolog, escribe, 'La Solucion se dio por:'), message(@prolog, comienzo, Uso1?selection)))), send(Dialogo, open). componente(interno, ialmacena_tempo):- ialmacena_tempo,!.componente(interno, ialmacena_notempob):- ialmacena_notempob,!.componente(interno, ialmacena_notempod):- ialmacena_notempod,!.componente(interno, procesa):- procesa,!.componente(interno, pasaco):- pasaco,!.componente(interno, conjuga):- conjuga,!.componente(interno, pitido):- pitido,!.componente(interno, leeograbaf):- leeograbaf,!.componente(interno, leeograbalc):- leeograbalc,!.componente(interno, leeograbald):- leeograbald,!.componente(interno, leeograbaq):- leeograbaq,!.componente(interno, descono):- descono,!.componente(externo, lapizop):- lapizop,!.componente(externo, raton):- raton,!.componente(externo, teclado):- teclado,!.componente(externo, audifonos):- audifonos,!.componente(externo, bocinas):- bocinas,!.componente(externo, monitor):- monitor,!.componente(externo, escanner):- escanner,!.componente(externo, multifun):- multifun,!.componente(externo, impresora):- impresora,!.componente(externo, regulador):- regulador,!.componente(externo, nobreak):- nobreak,!.componente(externo, descono):- descono,!. ialmacena_tempo:- checa('¿hace esto?'), checa('¿hace el otro?'),!.ialmacena_notempob:- checa('¿Almacena esto....?'), checa('¿Lo hace de manera No Temporal?'), checa('¿Guarda datos de la config del Hardware?'),!.descono:- afirma('No es ninguno de estos'),!. resultado(externo, descono):- new(ResulD, dialog('Resultado:')), new(L, label(resul, 'Desconocido')), send(ResulD, append(L)), new(B, button('Listo', and(message(ResulD, destroy), message(ResulD,free)))), send(ResulD, append(B)), send(ResulD, open). ........ afirma(Tipo3):- new(Dialogo3, dialog('Afirmacion: ')), new(Texto, label(tipo,Tipo3)), new(Byes, button(si,and(message(Dialogo3, return, si)))), send(Dialogo3, append(Texto)), send(Dialogo3, append(Byes)), send(Dialogo3, default_button, si), send(Dialogo3, open), get(Dialogo3, confirm, Respuesta), write(Respuesta), write(' '), send(Dialogo3,destroy), ((Respuesta==si)->assert(yes(Tipo3)); assert(no(Tipo3)),fail). /*Pregunta*/ pregunta(Tipo2):- new(Dialogo2, dialog('Pregunta: ')), new(Texto, label(tipo,Tipo2)), new(Byes, button(si,and( message(Dialogo2, return, si)))), new(Bno, button(no,and(message(Dialogo2, return, no)))), send(Dialogo2, append(Texto)), send(Dialogo2, append(Byes)), send(Dialogo2, append(Bno)), send(Dialogo2, default_button, si), send(Dialogo2, open), get(Dialogo2, confirm, Respuesta), write(Respuesta), write(' '), send(Dialogo2,destroy), ((Respuesta==si)->assert(yes(Tipo2)); assert(no(Tipo2)),fail). :-dynamic yes/1,no/1. checa(Prop):-(yes(Prop)->true;(no(Prop)->fail;pregunta(Prop)))./*deshacer todas las aserciones*/deshacer:-retract(yes(_)),fail.deshacer:-retract(no(_)),fail.deshacer.
Ahora explica este :P es uno bien guarro cuando apenas empezaba a aprenderlo :whistling: :comp:
Navegación
[*] Página Anterior
Ir a la versión completa