Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Paradigmas de programación Python: Funciones

Un paradigma de programación es una forma de pensar y escribir código. Es como un estilo de programación que define cómo organizamos y resolvemos problemas con una computadora.

No es solo otro algoritmo, sino una manera diferente de abordar los problemas.

Dependiendo del paradigma, el código puede verse muy distinto. Algunos enfoques son más avanzados y requieren conocimientos extra (por ejemplo, la programación con autómatas necesita entender teoría de autómatas).

La mayoría de los lenguajes modernos permiten usar varios paradigmas al mismo tiempo. Esto significa que puedes escribir código en diferentes estilos dentro del mismo programa.

Hasta ahora, hemos trabajado con dos paradigmas principales:

  • Paradigma imperativo
  • Paradigma declarativo (o funcional)

Paradigmas

Paradigma Imperativo

La programación imperativa consiste en escribir código como una secuencia de instrucciones, utilizando variables y ciclos.

# Encontrar el número máximo en una lista
numbers = [10, 20, 52, 105, 56, 89, 96]

max_num = numbers[0]
for number in numbers:
    if number > max_num:
        max_num = number

print(max_num)  # => 105

Características:

  • Usa asignaciones y variables mutables.
  • Usa bucles (for, while) para iterar.
  • Se enfoca en cómo lograr el resultado.

Lenguajes con fuerte influencia imperativa: Python, Java, JavaScript, C#, PHP, Ruby, Go.

Ventaja: Fácil de entender y se alinea con la forma en que funciona el hardware.

Desventaja: Puede ser difícil de escalar y mantener debido a la mutabilidad de los datos.

Paradigma Declarativo (Funcional)

El paradigma declarativo describe el qué queremos obtener en lugar de cómo hacerlo. A menudo se le asocia con la programación funcional.

Ejemplo en Python usando reduce():

# Encontrar el número máximo en una lista
from functools import reduce

numbers = [10, 20, 52, 105, 56, 89, 96]

max_num = reduce(lambda acc, number: number if number > acc else acc, numbers)

print(max_num)  # => 105

Características:

  • Se enfoca en describir el resultado, no en los pasos.
  • Evita asignaciones mutables.
  • Usa funciones puras y evita estados globales.

Lenguajes funcionales puros: _Haskell, Erlang, Elixir, OCaml, F#.

Lenguajes híbridos con fuerte soporte funcional: Scala, Clojure, Python, JavaScript.

Ventaja: Código más claro, predecible y fácil de probar.

Desventaja: Puede ser más difícil de aprender para quienes vienen de un enfoque imperativo.

Diferencias entre Imperativo y Declarativo

Característica Imperativo Declarativo
Enfoque* Explica cómo lograr el resultado Explica qué resultado obtener
Uso de variables Variables mutables, asignaciones constantes Variables inmutables, sin asignaciones
Uso de bucles Usa for y while Usa recursión o funciones de orden superior (map, filter, reduce)
Ejemplo de uso Algoritmos iterativos, manipulación de memoria Expresiones matemáticas, procesamiento de datos

Muchos lenguajes admiten ambos enfoques, aunque suelen priorizar uno sobre el otro.

Otros Paradigmas

Además de la programación imperativa y declarativa, existen otros paradigmas importantes:

Paradigma Descripción
Programación lógica Basada en reglas y hechos (Ej: Prolog).
Programación con autómatas Usa máquinas de estado finito, útil en sistemas embebidos.
Programación orientada a objetos (OOP) Modelo basado en objetos con propiedades y métodos (Python, Java, C#).
Metaprogramación Código que genera o modifica código en tiempo de ejecución (frameworks en Lisp, metaclases en Python).

Cada paradigma tiene su propio campo de aplicación y se pueden combinar dentro de un mismo proyecto.

Resumen

  • La mayoría de los lenguajes modernos permiten programar en más de un paradigma.
  • El paradigma imperativo es más intuitivo y se basa en instrucciones secuenciales.
  • El paradigma declarativo se enfoca en lo que queremos obtener, evitando estados mutables.
  • Otros paradigmas como OOP, programación lógica y metaprogramación tienen usos específicos.

Saber cuándo y cómo aplicar cada paradigma mejora la calidad del código.


Materiales adicionales

  1. Paradigmas 📚 Wikipedia
  2. Transparencia referencial 📚 Wikipedia

Para acceder completo a curso necesitas un plan básico

El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY