Volumen de la esfera

Definir la función

tal que (volumenEsfera r) es el volumen de la esfera de radio r. Por ejemplo,

Soluciones

A continuación se muestran las soluciones en Haskell y las soluciones en Python.


Solución en Haskell

El código se encuentra en GitHub.


Solución en Python

El código se encuentra en GitHub.

Comentarios

  • El número \pi se representa igual en Python que en Haskell; pero, en Python. para usarlo hay que importarlo de la librería math.
  • La potencia de número x elevado al entero n se escribe
    • en Haskell, x^n y
    • en Python, x ** n.

Suma de monedas

Definir la función

tal que (sumaMonedas a b c d e) es la suma de los euros correspondientes a a monedas de 1 euro, b de 2 euros, c de 5 euros, d de 10 euros y e de 20 euros. Por ejemplo,

Soluciones

A continuación se muestran las soluciones en Haskell y las soluciones en Python.


Soluciones en Haskell

El código se encuentra en GitHub.


Soluciones en Python

El código se encuentra en GitHub.

Comentarios

  • El producto de dos números x e y se escribe en Python igual que en Haskell: x * y.

Media aritmética de tres números

Definir la función

tal que (media3 x y z) es la media aritmética de los números x, y y z. Por ejemplo,

Soluciones

A continuación se muestran las soluciones en Haskell y las soluciones en Python.


Solución en Haskell

El código se encuentra en GitHub.


Soluciones en Python

El código se encuentra en GitHub.

Comentarios

  • Los comentarios irán resaltando las diferencias de la solución en Python respecto de la de Haskell (que no se hayan comentado en ningún ejercicio anterior).
  • La estructura de la definición en Python es

  • La suma de dos números x e y se escribe en Python igual que en Haskell: x + y.
  • El cociente de dos números decimales x e y se escribe en Python igual que en Haskell: x / y.

Curso de introducción a la programación con Haskell y Python

Mañana comenzará en Exercitium un curso práctico de introducción a la programación con Haskell y Python.

Diariamente, se publicará un ejercicio con sus soluciones en Haskell y en Python. El orden de los ejercicios se corresponde con el de los temas del curso de Programación funcional con Haskell. Además, en cada ejercicio se comentarán las diferencias entre ambos lenguajes y se irá extendiendo la tabla de equivalencia entre Haskell y Python.

Las soluciones de los ejercicios con Haskell se irán añadiendo al repositorio Exercitium em GitHub. Están como un proyecto con Stack (en concreto, la LTS-18.24) de forma que se puede verificar los ejemplos con

Las soluciones de los ejercicios con Python se irán añadiendo al repositorio Exercitium-Python em GitHub. Están como un proyecto con Poetry que usa la versión 3.10 de Python. También se pueden verificar los ejemplos con

He intentado escribir soluciones en Python parecidas a la de Haskell, conservando el estilo funcional. De todas formas, en los comentarios se pueden escribir definiciones alternativas en cualquiera de los lenguajes.

Los libros de Haskell en los que me he basado son

Los libros de Python en los que me he basado son

Números de Pentanacci

Los números de Fibonacci se definen mediante las ecuaciones

Los primeros números de Fibonacci son

Una generalización de los anteriores son los números de Pentanacci definidos por las siguientes ecuaciones

Los primeros números de Pentanacci son

Definir la sucesión

cuyos elementos son los números de Pentanacci. Por ejemplo,

Soluciones

El código se encuentra en GitHub.

Referencias