Páginas

Bienvenidos

Este blog busca darle algunas herramientas para trabajar con varios de los programas más interesantes y útiles de la actualidad.

El objetivo es emplear ejemplos y su desarrollo paso a paso para que el aprendizaje sea lo más fácil y real posible.

Mathematica

Mathematica
Mathematica

Etiquetas

Datos personales

Mi foto
Ingeniero
Esp. Informática y Computación
Esp. Administración de Sistemas

apache Flex

Mathematica

Todo el poder de Mathematica en la Web:



Ejemplos de uso:

1) Plot3D[Sin[x]*Cos[y],{x,0,2 Pi},{y,0,Pi}]
2) Colombia

Escribe el ejemplo y da clic en el igual

Seguidores

martes, 24 de mayo de 2011

PostHeaderIcon PROLOG: Multiplica elementos de una lista (versión 2)


Este programa multiplica los elementos de una lista:


my_mul_elements([], S, S).

my_mul_elements([X|Xs], T, S):-
T2 is T * X,
my_mul_elements(Xs, T2, S).


Para ejecutar el programa:


?- my_mul_elements([1,2,3,4,5], 1, S).


Y el resultado es:


S = 120



*** Programa probado en WinProlog versión 4.7 ***

3 comentarios:

Unknown dijo...
Este comentario ha sido eliminado por el autor.
Unknown dijo...

Buenas noches, tengo una duda, en el segundo argumento mas especifico en esta parte ( my_mul_elements(Xs, T2, S).) La letra "S" a que se refiere, porque en el primer argumento (my_mul_elements([], S, S).) tienes 2 "S"; entonces la letra "S" de "my_mul_elements(Xs, T2, S)." a que se refiere con el primer argumento.

a8a dijo...

Hola

Acabo de ver tu pregunta. Bueno, el argumento S corresponde a la respuesta que devuelve la regla.

Mejor dicho, el calculo se va pasando en el segundo argumento, en T y T2, en la segunda regla, y cuando la lista del primer argumento esta vacia se llama la primera regla, la cual, al tener los 2 argumentos con el mismo nombre, hace que ellos tomen el mismo valor. Lo cual quiere decir, que el valor que venia pasandose en el segundo argumento (T), se copia al tercer argumento (S) que venia vacio. Y ese valor en S es la respuesta de la operación.

Espero te sirva la explicación.

Publicar un comentario

Apache Flex

Wolfram Programming Lab