martes, 27 de febrero de 2007

L15-DECL

Integrantes:
Miguel Solis A00739496
Mario Figueroa A00739420
Gerardo Velo A00746849


Como programar Prolog en Ruby.

Para poder interpretar lineas de codigo con estructura de Prolog en un archivo Ruby es necesario contar con los siguientes archivos.

el primer archivo cuenta con 45 lineas y tiene un peso de 1KB
http://mipagina.chi.itesm.mx/.a00739496/tiny_prolog_ext.rb

este archivo cuenta con 235 lineas y tiene un peso de 5KB
http://mipagina.chi.itesm.mx/.a00739496/tiny_prolog.rb

Estos dos archivos funcionan como interpretes de la estructura realizada en una programacion en prolog , cada vez que se realize un algoritmo es necesario requerir uno de estos archivos.

Por ejemplo, en la primera linea del algoritmo cuida de poner:

require 'tiny_prolog_ext'

Para llamar al "interprete". Los archivos que ejecutes tienen que estar grabados dentro de la misma direccion donde tienes estos archivos.

require 'tiny_prolog_ext'
# rules
# read as "X and Y are siblings if Z is the parent of both"
sibling[:X,:Y] <<= [ parent[:Z,:X], parent[:Z,:Y], noteq[:X,:Y] ] parent[:X,:Y] <<= father[:X,:Y]parent[:X,:Y] <<= mother[:X,:Y] # facts: rules with "no preconditions" father["matz", "Ruby"].fact mother["Trude", "Sally"].fact father["Tom", "Sally"].fact father["Tom", "Erica"].fact father["Mike", "Tom"].fact query sibling[:X, "Sally"] # >> 1 sibling["Erica", "Sally"], este es el resultado de la ejecucion.


Otro ejemplo son las torres de Hanoi.

http://mipagina.chi.itesm.mx/.a00739496/hanoi.rb

lo importante es la primera linea de codigo, no lo olvides......

Para mayor informacion puedes consultar:

http://eigenclass.org/hiki.rb?tiny+prolog+in+ruby

Un ejemplo sencillo de preguntas en prolog:

require 'tiny_prolog_ext' #la linea de fauld

mortal[:X] <<= humano[:X] # los huamnos son mortales

humano["socrates"].fact #socrates es humano

query mortal[:X] #quien es mortal

#tu resultado debe se socrates

No hay comentarios: