SoloCodigo

Informática en general => Dudas informáticas => Mensaje iniciado por: Bicholey en Lunes 7 de Agosto de 2006, 20:18

Título: Que Es Prolog????
Publicado por: Bicholey en Lunes 7 de Agosto de 2006, 20:18
:P  :P  :P  :P  :P


Hola a todos quisiera preguntarles que diablos es prolog para que sirve y quienes lo usan lo he escuchado por ahi y dicen que me lo van a enseñar pero antes queria preguntarles su opinion????
Título: Re: Que Es Prolog????
Publicado por: x.cyclop en Lunes 7 de Agosto de 2006, 20:35
http://en.wikipedia.org/wiki/Prolog (http://en.wikipedia.org/wiki/Prolog)

Uno me dijo que es asqueroso y prefiere Delphi y C, pero yo no se si sea cierto porque no me interesa. :whistling:
Título: Re: Que Es Prolog????
Publicado por: ArKaNtOs en Martes 8 de Agosto de 2006, 12:36
Citar
Uno me dijo que es asqueroso y prefiere Delphi y C, pero yo no se si sea cierto porque no me interesa.

Te imaginas la cantidad de lineas de codigo que tendrias que usar para realizar un sistema experto, el que te lo dijo o no tiene mucho que hacer (Para escribir un codigo tan grande) o simplemente no entiende que prolog trabaja con un paradigma totalmente diferente a la de la programacion común por asi decirlo jejeje

Prolog es un standar en la programacion logica, si no mal recuerdo fue llamado el lenguaje oficial de la IA  :unsure: pero no recuerdo bien :P jejeje lo que si te quiero decir bicholey es que vas a tener que pensar de una manera diferente a la programacion comun.

por cierto prolog en si es muy viejito y no se puede hacer nada muy visual, asi que existen implementaciones para esto, te sugiero una libre muy buena

SWI-Prolog aunque sino tambien es buena Visual Prolog

http://es.wikipedia.org/wiki/Prolog (http://es.wikipedia.org/wiki/Prolog)
Título: Re: Que Es Prolog????
Publicado por: leandrog en Martes 8 de Agosto de 2006, 13:47
Prolog es un Leanguaje de programacion de paradigma de programacion Logica, alli todo es por lolgica y lo mejor, no hace falta declarar variables  :D .

Saludos.

PD: no tiene solo eso, tambien muchisimas cosas mas a su favor pero aun sigo "jugando" con el para probarlo jejeje. :P
Título: Re: Que Es Prolog????
Publicado por: ArKaNtOs en Martes 8 de Agosto de 2006, 17:08
Citar
lo mejor, no hace falta declarar variables
eso es porque no existen tipos de datos como en la programacion comun aqui solo basta con poner el nombre de la variable en mayusculas y listo.

PD investiga sobre IA antes de que uses el prolog ;) :hola:
Título: Re: Que Es Prolog????
Publicado por: JuanK en Martes 8 de Agosto de 2006, 17:55
Cita de: "ArKaNtOs"
Citar
lo mejor, no hace falta declarar variables
eso es porque no existen tipos de datos como en la programacion comun aqui solo basta con poner el nombre de la variable en mayusculas y listo.

PD investiga sobre IA antes de que uses el prolog ;) :hola:
como era en visual vasic 6.0 y sera en C# 3.0 o al menos eso vi en los planes aunque no me convence para nada.
Título: Re: Que Es Prolog????
Publicado por: ArKaNtOs en Martes 8 de Agosto de 2006, 21:29
Citar
como era en visual vasic 6.0

Creo que te equivocas, en VB 6.0 si existen tipos de datos, solo que cuando no declaras una variable, por defecto esta tiene el tipo de datos variant, que admite todos los tipos de datos comunes, el problema es que ocupa mas espacio en memoria que cualquier otro tipo.
Título: Re: Que Es Prolog????
Publicado por: JuanK en Martes 8 de Agosto de 2006, 21:30
a eso me referia, es practicamente lo mismo que declarar un dato sin definirle un tipo.
Título: Re: Que Es Prolog????
Publicado por: ArKaNtOs en Martes 8 de Agosto de 2006, 21:42
si nada mas que la ENORME diferencia es que prolog es otro paradigma ;)
Título: Re: Que Es Prolog????
Publicado por: Diodo en Martes 8 de Agosto de 2006, 21:43
Citar
como era en visual vasic 6.0 y sera en C# 3.0 o al menos eso vi en los planes aunque no me convence para nada

Esperemos que no ¡¡¡ No me gusta nada esa idea. El codigo seria mucho mas confuso y dificil de entender  ;)
Título: Re: Que Es Prolog????
Publicado por: ArKaNtOs en Martes 8 de Agosto de 2006, 21:54
Citar
Esperemos que no ¡¡¡ No me gusta nada esa idea. El codigo seria mucho mas confuso y dificil de entender

De hecho el codigo de VB es exageradamente sencillo de entender, pero el de prolog si no tienes mucha experiencia te resultara algo engorroso jejeje

http://es.wikipedia.org/wiki/Prolog (http://es.wikipedia.org/wiki/Prolog)
Título: Re: Que Es Prolog????
Publicado por: JuanK en Martes 8 de Agosto de 2006, 21:56
Aca esta el documento.

http://download.microsoft.com/download/5/8...ecification.doc (http://download.microsoft.com/download/5/8/6/5868081c-68aa-40de-9a45-a3803d8134b8/CSharp_3.0_Specification.doc)

De destacar por el momento ( no lo he mirado mucho) lo de inline SQL CODE me parece la berraquera porque eso lo usa ORacle PL/SQL y hace muy facil muchas tareas.
Título: Re: Que Es Prolog????
Publicado por: su - en Martes 8 de Agosto de 2006, 23:42
Personalmente no me gusta Prolog por complicado, es un tool muy poderoso, sin duda alguna.
Pero creo que en estos tiempos saldria mejor un poco de Scheme y un poquito de Lisp, pero como ya se ha dicho, un lenguaje de mas nunca sobra  :)
Título: Re: Que Es Prolog????
Publicado por: Bicholey en Miércoles 9 de Agosto de 2006, 20:14
:P  :P  :P  :P  :P

Gracias por sus respuesta¡¡¡¡¡¡¡¡
Título: Re: Que Es Prolog????
Publicado por: x.cyclop en Miércoles 9 de Agosto de 2006, 23:54
Se nota que es otro paradigma, está raro. :ph34r:

Código: Text
  1. :- write('Hello, world'),nl.
  2.  
Título: Re: Que Es Prolog????
Publicado por: ArKaNtOs en Jueves 10 de Agosto de 2006, 08:04
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.

jejeje lo raro no esta en imprimir una linea, lo dificil esta en otros aspectos ;)

Código: Text
  1. :- use_module(library(pce)).
  2.  
  3. escribe(Texto):-
  4.   write(Texto).
  5.  
  6. comienzo(Valor):-
  7.   componente(Valor, Tipo),
  8.   resultado(Valor, Tipo),
  9.   nl, deshacer.
  10.  
  11. arranque:-
  12.  
  13. new(Dialogo, dialog('Adivinador de Componentes de PC')),
  14. new(Uso1, menu('¿Es un componente interno o Externo?:', marked)),
  15.  
  16. /*Funciones Send*/
  17.  
  18. send(Dialogo, append, new(Nom, text_item('¿Cual es su nombre?'))),
  19. send(Uso1, append, interno),
  20. send(Uso1, append, externo),
  21. send(Dialogo, append(Uso1)),
  22.  
  23. send(Dialogo, append, button('Continuar', and(
  24.   message(@prolog, escribe, Nom?selection),
  25.   message(@prolog, escribe, ' '),
  26.   message(@prolog, escribe, 'La Solucion se dio por:'),
  27.   message(@prolog, comienzo, Uso1?selection)))),
  28.  
  29. send(Dialogo, open).
  30.  
  31. componente(interno, ialmacena_tempo):-
  32.   ialmacena_tempo,!.
  33. componente(interno, ialmacena_notempob):-
  34.   ialmacena_notempob,!.
  35. componente(interno, ialmacena_notempod):-
  36.   ialmacena_notempod,!.
  37. componente(interno, procesa):-
  38.   procesa,!.
  39. componente(interno, pasaco):-
  40.   pasaco,!.
  41. componente(interno, conjuga):-
  42.   conjuga,!.
  43. componente(interno, pitido):-
  44.   pitido,!.
  45. componente(interno, leeograbaf):-
  46.   leeograbaf,!.
  47. componente(interno, leeograbalc):-
  48.   leeograbalc,!.
  49. componente(interno, leeograbald):-
  50.   leeograbald,!.
  51. componente(interno, leeograbaq):-
  52.   leeograbaq,!.
  53. componente(interno, descono):-
  54.   descono,!.
  55. componente(externo, lapizop):-
  56.   lapizop,!.
  57. componente(externo, raton):-
  58.   raton,!.
  59. componente(externo, teclado):-
  60.   teclado,!.
  61. componente(externo, audifonos):-
  62.   audifonos,!.
  63. componente(externo, bocinas):-
  64.   bocinas,!.
  65. componente(externo, monitor):-
  66.   monitor,!.
  67. componente(externo, escanner):-
  68.   escanner,!.
  69. componente(externo, multifun):-
  70.   multifun,!.
  71. componente(externo, impresora):-
  72.   impresora,!.
  73. componente(externo, regulador):-
  74.   regulador,!.
  75. componente(externo, nobreak):-
  76.   nobreak,!.
  77. componente(externo, descono):-
  78.   descono,!.
  79.  
  80. ialmacena_tempo:- checa('¿hace esto?'), checa('¿hace el otro?'),!.
  81. ialmacena_notempob:- checa('¿Almacena esto....?'), checa('¿Lo hace de manera No Temporal?'), checa('¿Guarda datos de la config del Hardware?'),!.
  82. descono:- afirma('No es ninguno de estos'),!.
  83.  
  84. resultado(externo, descono):-
  85.   new(ResulD, dialog('Resultado:')),
  86.   new(L, label(resul, 'Desconocido')),
  87.   send(ResulD, append(L)),
  88.   new(B, button('Listo', and(message(ResulD, destroy), message(ResulD,free)))),
  89.   send(ResulD, append(B)),
  90.   send(ResulD, open).
  91.  
  92. .
  93. .
  94. .
  95. .....
  96.  
  97. afirma(Tipo3):-
  98.   new(Dialogo3, dialog('Afirmacion: ')),
  99.   new(Texto, label(tipo,Tipo3)),
  100.   new(Byes, button(si,and(message(Dialogo3, return, si)))),
  101.   send(Dialogo3, append(Texto)),
  102.   send(Dialogo3, append(Byes)),
  103.   send(Dialogo3, default_button, si),
  104.   send(Dialogo3, open),
  105.   get(Dialogo3, confirm, Respuesta),
  106.   write(Respuesta),
  107.   write(' '),
  108.   send(Dialogo3,destroy),
  109.   ((Respuesta==si)->assert(yes(Tipo3));
  110.   assert(no(Tipo3)),fail).
  111.  
  112. /*Pregunta*/
  113.  
  114. pregunta(Tipo2):-
  115.   new(Dialogo2, dialog('Pregunta: ')),
  116.   new(Texto, label(tipo,Tipo2)),
  117.   new(Byes, button(si,and(
  118.     message(Dialogo2, return, si)))),
  119.   new(Bno, button(no,and(message(Dialogo2, return, no)))),
  120.   send(Dialogo2, append(Texto)),
  121.   send(Dialogo2, append(Byes)),
  122.   send(Dialogo2, append(Bno)),
  123.   send(Dialogo2, default_button, si),
  124.   send(Dialogo2, open),
  125.   get(Dialogo2, confirm, Respuesta),
  126.   write(Respuesta),
  127.   write(' '),
  128.   send(Dialogo2,destroy),
  129.   ((Respuesta==si)->assert(yes(Tipo2));
  130.   assert(no(Tipo2)),fail).
  131.  
  132. :-dynamic yes/1,no/1.
  133.  
  134. checa(Prop):-
  135. (yes(Prop)->true;(no(Prop)->fail;
  136. pregunta(Prop))).
  137. /*deshacer todas las aserciones*/
  138. deshacer:-retract(yes(_)),fail.
  139. deshacer:-retract(no(_)),fail.
  140. deshacer.
  141.  
  142.  

Ahora explica este :P es uno bien guarro cuando apenas empezaba a aprenderlo :whistling:  :comp: