Introduccion a sml
• 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: intReferencias 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...
Regístrate para leer el documento completo.