domingo, 19 de septiembre de 2010

Lenguajes funcionales

Esta entrada es para la clase de lenguajes de programación
Los lenguajes funcionales son lenguajes de programación en donde estos se utilizan para un fin especifico.
Para demostrar lo aprendido, hablare acerca de dos lenguajes funcionales.


Lenguaje R 
Lenguaje script que se utiliza principalmente para la estadística científica.
En ejemplo es para sacar determinantes de una matriz, de una forma muy sencilla.
Como recordaran, en matemáticas 1 vimos diferentes formas de obtener un determinante en base a una matriz, con lenguaje R es muy fácil obtenerlo.


Para empezar después de bajar R con el comando.
sudo apt-get install r-base
obtendrás algo como esto:
Cuando termine, habrás descargado el paquete de lenguaje R, inicia en el terminal con una "R" y obtendrás algo así.

Ahora sacar la determinante de la matriz, simplemente vas a escribir.

M <-matrix(c(3,2,1,2,-2,1,3,-1,1,-3,-1,2,-1,1,2,1),nrow=4, ncol=4)

Observamos si capturamos bien, escribiendo M

     [,1] [,2] [,3] [,4]
[1,]    3   -2    1   -1
[2,]    2    1   -3    1
[3,]    1    3   -1    2
[4,]    2   -1    2    1

Obtenemos la determinante usando la función det(M), en donde M es la matriz capturada.
y obtenemos como resultado 48, para comprobar hice el calculo de la determinante como lo vimos en matemáticas 1.




Haz clic para agrandar!
Y obtenemos el mismo resultado.


LISP
Lenguaje funcional que su principal objetivo es utilizar listas, sin embargo, es util para ya sea para orientacion objetos y declarativo, ya que es multiparadigma
Para iniciar debemos de instalar el clisp para utilizarlo en el terminal.
sudo apt-get install clisp
Después ya podemos empezar a escribir, en este caso  hice una función condicional que sirve para saber si un alumno aprobo o reprobo la materia.
[1]> (defun materia(x)
(cond ((>= x 70) (print "Aprobaste"))
((<= x 70) (print "Reprobaste"))) )
MATERIA
[2]> (materia 70)
"Aprobaste" 
"Aprobaste"
[3]> (materia 60)
"Reprobaste" 
"Reprobaste"
[4]> (materia 50)
"Reprobaste" 
"Reprobaste"
[5]> (materia 80)
"Aprobaste" 
"Aprobaste"

En este otro ejemplo hacemos funciones sencillas para determinar el cuadrado y el cubo de numeros.


[1]> (defun cubo(x) (* x x x)) 
CUBO
[2]> (cubo 3)
27
[3]> (cubo 2)
8


[4]> (defun cuadrado(x) (* x x))
CUADRADO
[5]> (cuadrado 2)
4
[6]> (cuadrado 3)
9

Espero que mi explicación les sirva, si tienen algún comentario acerca de esta entrada, espero me digan ya que estoy abierto a cualquier error.


4 comentarios:

  1. si es asi la forma de poner la matriz??
    M <-matrix(c(3,2,1,2,-2,1,3,-1,1,-3,-1,2,-1,1,2,1),nrow=4, ncol=4)


    o debio haber salido algo asi..
    M <-matrix(c(3,2,1,2,-2,1,3,-1,1,-3,-1,2,-1,1,2,1),nrow=4, ncol=4)

    :D

    saludos!

    ResponderEliminar
  2. Ya entendí lo que quisiste decir, fue error de html
    gracias :)

    ResponderEliminar
  3. Te califico la tarea cuando ya no marca "no terminada".

    ResponderEliminar
  4. Bueno, ahora califiqué. Los programas son bastante sencillos. Dos puntos. Si quieres más, haz uno más complicado como puntos extra.

    ResponderEliminar