<$BlogRSDUrl$>

Pro·Log·[IR]

Programación Lógica y Recuperación de Información

«Algorithm = Logic + Control» Robert Kowalski (1979)

¡Importante! esta página hace uso de estilos recogidos en la especificación CSS2, no soportados por el navegador que está utilizando. Por favor, lea esta recomendación al respecto.

Archivo

Guardado por meses.

Enlaces

Los siguientes listados son una referencia a partir de la cual ampliar la búsqueda de sitios relacionados (i).

Bitácoras en castellano

Bitácoras en inglés

Directorios, metablogs

Programación lógica, Inteligencia Artificial, Recuperación de Información

Usabilidad, Arquitectura de la Información

Listas, foros, wikis

Matemáticas, ciencias

Miscelánea

Búsquedas

Búsqueda simple en varios de los motores más conocidos. Para mayor precisión, entrar en la página correspondiente e ir al apartado de búsqueda avanzada.

Búsqueda con Google
 

Búsqueda con Yahoo!
 

Búsqueda con AlltheWeb

Varios

Esta página traducida:

Traducción al catalán, internostrum; traducción al portugués, universia.

Reciba un aviso de nuevos comentarios (por Bloglet).


Agregue este sitio a su lector de "feeds" (sindicación mediante el sistema Atom).

Sobre este sitio

Espacio dedicado a la programación lógica y la recuperación de información, con una atención especial al lenguaje Prolog y otros lenguajes afines, pertenecientes al paradigma lógico y declarativo. También se tratará de hablar de estos temas desde la perspectiva de la Biblioteconomía y la Documentación.

En esta página

7.4.04

Prolog + Scheme = Schelog

Schelog es una implementación desarrollada por D. Sitaram que permite combinar fragmentos de código escritos en un estilo de programación similar a Prolog (incluyendo las principales características de este lenguaje tales como el backtracking o retroceso, la unificación, el corte, la negación, predicados meta-lógicos, etc.) con expresiones en Scheme puro o convencional (Scheme es un lenguaje derivado de Lisp - ver la anterior anotación en la que hacíamos referencia a este último), dentro de una misma aplicación:

Schelog is an embedding of Prolog-style logic programming in Scheme. "Embedding'' means you don't lose Scheme: You can use Prolog-style and conventional Scheme code fragments alongside each other. Schelog contains the full repertoire of Prolog features, including meta-logical and second-order ("set'') predicates, leaving out only those features that could more easily and more efficiently be done with Scheme subexpressions.

La sintaxis de Schelog es la propia del lenguaje Lisp/Scheme (básicamente, consiste en listas anidadas e indentadas, sin comas, indicadas mediante paréntesis, anteposición de los signos de operación a los argumentos, cadenas de caracteres entre comillas, etc.). A modo de ejemplo, se indica a continuación la porción de código necesaria para calcular, recursivamente, el factorial de un número, en Prolog en primer lugar, y en Schelog en segundo (recordemos que el factorial de un número natural n, es el producto de todos los números naturales desde 1 hasta n):

factorial(0,1):- !.
factorial(X,Y):- X1 is X-1,
                 factorial(X1,Y1),
                 Y is X*Y1.

(define %factorial
  (%rel (x y x1 y1)
    [(0 1) !]
    [(x y) (< x 0) ! %fail]
    [(x y) (%is x1 (- x 1))
           (%factorial x1 y1)
           (%is y (* y1 x))]))

Schelog puede ser considerado como una combinación entre los estilos de programación o paradigmas representados por el lenguaje Prolog por un lado (programación lógica), y el dialecto de Lisp Scheme por otro (programación declarativa y funcional). "Programming in Schelog" es una introducción en la que el mencionado D. Sitaram aborda la sintaxis y la programación mediante la implementación que venimos comentando. Por otra parte, y de este mismo autor, "Teach Yourself Scheme in Fixnum Days" es una guía rápida e introducción al lenguaje Scheme.

Finalmente, recomendar la lectura de una introducción de carácter general, referida a los orígenes del lenguaje Scheme: "Scheme: lo pequeño es bello - Un lenguaje de programación ideal para la enseñanza" (Carlos Coello). Este artículo fue publicado posteriormente (formato PS comprimido en un .zip) por el autor, con idéntico título y más extensión y profundidad, en la revista Soluciones Avanzadas (números 39 y 43; actualmente esta publicación parece no estar disponible en línea, si bien en Internet Archive es posible localizar varias copias). Esta nueva versión ampliada de "Scheme: lo pequeño es bello..." añade, a la explicación de la parte histórica y de desarrollo del lenguaje Scheme, una introducción, con ejemplos, a sus características esenciales y sintaxis de uso, principales versiones y extensiones, así como una consideración final en torno a su utilidad en la investigación y enseñanza en el campo de los lenguajes de programación ("Scheme como un instrumento para la enseñanza").

| # | lista |


Pro·Log·[IR],

Publicación: Blogger | Estadísticas: eXTReMe Tracking

Se recomienda ver este sitio con Mozilla 1+, Firefox 0.8+ ó Netscape 7+. Si no queda más remedio, con IE 6+. Si lo desea, comunique cualquier problema al respecto. También será bien recibida cualquier sugerencia sobre el contenido. La fuente de letra preferente es Georgia. Se prohibe la utilización del diseño de la página salvo autorización expresa del autor. Los contenidos escritos son de uso libre, siempre que se cite la fuente.