Escolar Documentos
Profissional Documentos
Cultura Documentos
Conceptos fundamentales
1.1 Diferentes estilos de programacin
Los LP se pueden clasificar utilizando distintas
taxonomas.
Por el nivel de abstraccin:
Bajo nivel
Mediano Nivel
Alto Nivel
Por las estructuras de control:
Programacin imperativa
Programacin declarativa
1.1 Diferentes estilos de programacin
Por el estilo de programacin:
Programacin Lineal
Programacin Estructurada
Programacin Funcional
Programacin Lgica
Programacin concurrente
Programacin Orientada a Objetos
Programacin Orientada a Aspectos
Programacin en Paralelo
1.1 Diferentes estilos de programacin
Programacin funcional:
Paradigma de programacin declarativa basada en
funciones matemticas, que no permiten el cambio de
estado de los datos.
Programacin Lgica:
Paradigma de programacin declarativa basada en la
lgica de primer orden, tomando conocimiento
declarativo como base para construir nuevo
conocimiento utilizando el conocimiento procedural.
1.1 Diferentes estilos de programacin
Programacin estructurada
Haskell
F#
Python
Scala
Clojure
Rust
Ocaml
1.2.1 Evaluacin de expresiones
Una expresin como en muchos lenguajes
esta formada por operadores, literales,
variable y/o funciones.
Las expresiones en Haskell se escriben en
notacin infija o notacin normalizada con
precedencia de los operadores.
Los operadores estn ajustados a tipos y
metatipos de datos.
1.2.2 Tipos de datos
Tipo de datos bsicos Operadores
:type expresin
== Igual que
/= Diferente que
4+2
(+) 4 2
4 + 2+3
(+) 4 2+3
cuadrado x = x ** 2
areaTriangulo b a = b * a / 2
Declaracin de la funcin?
1.2.4 Definicin de funcin
Cuando se requiere definiciones locales de funciones o la
repeticin de expresiones dentro de una funcin se utiliza
where.
Condicionales
La estructura case permite validar varias expresiones y
tomar decisiones, expR.. Son las posibles expresiones
resultados.
case exp of
exp1 -> expR1
exp2 -> expR2
exp3 -> expR3
:
[otherwise -> expRN]
Condicionales
Ejemplo:
divSegura x y |y==0 = -1
|y<0 || x <0 = (abs x) / (abs y)
|otherwise =x /y
factorial n | n==0 = 1
|otherwise = n*factorial (n-1)
fibonacci n|n<2 =1
|otherwise= fibonacci (n-1)+fibonacci(n-2)
Ejercicios
Elabore funcin que dado un entero
indique si es mltiplo de 5 utilizando la
regla que todo nmero es mltiplo de 5 si
termina con 0 5.
Elabore una funcin que obtenga el total de
dgitos pares que tiene un entero. Por
ejemplo 35678 tiene 2 dgitos pares.
Elabore una funcin que obtenga de un
entero su complemento a 10.
Introduccin a Scala
Scala es un lenguaje orientado a objetos funcional.
Se ejecuta sobre la mquina virtual de java y sobre .NET
Framework
La parte funcional de scala, soporta datos inmutables y
mutables.
La mayora de las caractersticas de la programacin
funcional estn implementadas en Scala.
Puede funcionar de forma interactiva desde la lnea de
comandos, mediante scripts o mediante programa
compilados (traducidos).
Introduccin a Scala
Ejemplo:
def doble(x:Int)=x+x
def ultimoDigito(x:Int)= x%10
Introduccin a Scala
Una funcin puede definir su tipo de retorno
def funcion[(argumentos):tipo]=expresin
def funcion[(argumentos):tipo=]{bloque}
Ejemplos:
def fact(x:Int):BigInt= (1 to x).product