Introduccion a sml

Solo disponible en BuenasTareas
  • Páginas : 3 (560 palabras )
  • Descarga(s) : 0
  • Publicado : 28 de septiembre de 2010
Leer documento completo
Vista previa del texto
Programación Funcional
• En CS la programación funcional es un
“Paradigma”.

• La programación funcional hace énfasis a la
aplicación de funciones matemáticas

• El “Lambda Cálculo” describeun modelo
funcional, el cual es utilizado por los lenguajes de programación funcional

Un programa “funcional” es una expresión

Los programas funcionales no tienen:
• Variables • Asignaciones• Secuencias • Repeticiones • etc...

Los programas funcionales si tienen:
• Expresiones nombradas: “Sea f(x)=.....” • Funciones recursivas:
“ f(0)=1 and f(n)=3f(n-1)+2”

• Funciones de ordensuperior:

“H(x)=f(g(x,y)), donde f(x)= x^3 y g(x)=gcd(x,y)”

Ventajas
• Semántica muy clara • Sintáxis simplificada • Poseen una estructura semejante a
modelos matemáticos abstractos

• Mayorlibertad en la implementación • Mayor eficiencia

Algunas Características de SML
• Lenguaje de programación funcional • Descendiente de ML • Inferencia de tipos • Tipos de datos abstractos • poseemecanismos para el manejo de
excepciones

• manejo automatizado de memoria,
mediante un recolector de basura

• álgebra de funciones • evaluación por valor • etc

Evaluación - 2 + 3; val it =5 : int
- rev [1,2,3,4,5]; val it = [1,2,3,4,5] : int list

Referencia Simple
- val n = 7*2 + 9; val n= 23: int - n*2; val it = 46

Identificador especial “it”
-it; val it = 42

Referenciasmúltiples
- val one =1 and two=2 val one = 1: int val two = 2: int

Referencias Locales
- val n = 0; val n = 0: int - let val n = 12 in n div 6 end;

val it = 2 - n; val it = 0: int Referencias Locales Múltiples
- let val n=4 val m=7 in m+n end; val it = 11: int

Operaciones
• - val a = true and b = false;
val a = true: bool val b = false: bool

• - 2 = (1 - 1);

val it =false: bool val it = false: bool

• - not (a orelse b);

• - (12 > 13) andalso (true orelse 1>0);
val it = false : bool

Algunas Operaciones
• - val n = 2+(3*3);
val n = 11: int

• - val...
tracking img