Un poco de ml

Páginas: 18 (4292 palabras) Publicado: 18 de mayo de 2013
Algoritmos y Estructuras de Datos I

Apuntes suplementarios de las clases presenciales

Prof. Ing. Fernando A. Villar
2008
Rev.1 – 2009
Rev.2 - 2010

1-21

Breve Inicio en ML
Características
ML es un lenguaje de programación relativamente nuevo con unas características extremadamente interesantes.
ML es esencialmente un lenguaje funcional, esto significa que el modo básico de laprogramación esta basado en
la definición y aplicación de funciones. Estas funciones pueden ser definidas por el usuario, como en los lenguajes
convencionales, mediante la escritura de código para la función. Pero también es posible utilizar a las funciones
como valores y calcular nuevas funciones a partir de ellas mediante operadores como la composición de funciones.
Es libre efectoscolaterales. La consecuencia del estilo funcional es que el cálculo procede mediante la evaluación
de expresiones, no mediante la asignación de variables. De todos modos hay formas de construir expresiones que
afectan o cambian de manera permanente el valor de variables u otros objetos observables.
ML soporta funciones de orden superior. Funciones que toman a otras funciones como argumentos de manerarutinaria y con generalidad.
ML soporta el polimorfismo, lo cual es la habilidad de una función de tomar argumentos de varios tipos.
ML recomienda la recursión preferentemente a las iteraciones como bucles for y while, de uso común en lenguajes
imperativos como Pascal y C.
La recursión permite expresar las ideas computacionales de manera mas clara.
Hay una manera muy fácil en ML de realizarprogramación basada en reglas, donde las acciones están basadas en
reglas del tipo if-then.
La idea central es la construcción de acciones patrones, donde un valor es comparado a la vez con varios patrones.
El primer patrón que concuerda provoca la ejecución de la acción asociada.
Ejemplo:
fun
|

factorial (0) = 1
factorial (n) = n * factorial(n-1);

En este caso podemos ver que seestablecen dos patrones con acciones asociadas, cuando se invoca a la función
factorial con un argumento igual a cero (0), la concordancia se establece con el primer patrón por lo tanto el valor
de la funcion es 1. Para cualquier otro caso se disparará la ejecución de la segunda acción ( llamada recursiva …).
ML es un lenguaje fuertemente tipado, significa que todos los valores y variables tienen untipo de dato que puede
ser determinado en tiempo de compilación (examinando el programa sin necesidad de ejecutarlo ).
Esta característica es una ayuda muy importante en la depuración de programas, ya que le permite al compilador
capturar varios errores en lugar de que aparezcan errores misteriosos mientras el programa se ejecuta.
Al contrario de los demás lenguajes fuertemente tipados, MLtrata de inferir a través de las expresiones utilizadas,
el tipo único que tiene cada variable, y sólo espera una declaración cuando le es imposible deducir el tipo.
Empezando en ML
Expresiones:
Por ejemplo en modo interactivo tipeamos:
> 1+2*3;
val it = 7 : int
(En itálica siempre me referiré a la respuesta del sistema ML)
Observando este ejemplo se desprenden dos puntos interesantes
Una expresión debe estar seguida por un “punto y coma” para indicarle al intérprete que la instrucción ha
terminado.



La respuesta del intérprete ML a una expresión es:
2-21








La palabra val representando la palabra “valor”.
El nombre de variable it, la cual referencia a la expresión previa
Un signo igual ( = )
El valor resultante de la expresión ( 7 en nuestrocaso)
Un signo dos puntos, el cual en ML es el símbolo que asocia un valor con su tipo de dato
Una expresión que denota el tipo del valor. En nuestro ejemplo el valor de la expresión es un entero,
por tal motivo el tipo int sigue a los dos puntos.

Constantes:
Como en cualquier otro lenguaje, las expresiones en ML estan compuestas por operandos y operadores. Estos
operandos pueden ser tanto...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Klñlm .Ml
  • ,ll,,ml
  • Alla Ml
  • reconocimiento ML
  • ml-klñjkpkp
  • Poca
  • de todoo un poco
  • Poca

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS