Haskell

Haskell 21: Ejercicio Factorial en Haskell

20 videos

111 minutos

Bien amigos continuamos con los ejercicios de haskell y en esta ocasión vamos a ver uno de los ejercicios que ustedes propusieron que es el de calcular el factorial de un número con haskell, así que les sigo animando que si tienen más propuestas de ejercicios las pongan en los comentarios para verlas en futuros videos resueltos como es este caso y bueno pues vamos a ver, tengo aquí tres formas de resolver este ejercicio con tres maneras diferentes

y ya las tengo escritas para ahorrar tiempo entonces más bien se los explico, esto está en un archivos haskell .hs es tan sencillo como cargarlo poniendo dos puntos L de load y haskell.hs se compila está bien no tiene errores, y les explico la primera y la segunda son recursivamente que es como normalmente se hace esta función en la mayoría de los lenguajes y es muy sencillo

aquí tienen el patrón de la función, el factorial uno que es la primera función recibe un entero y devuelve un entero y esto es así cuando el número que recibe se le llama N y el número que se devuelve pues si es cero se devuelve un uno y si no se devuelve menos uno recursivamente así mismo se llama para multiplicar y ahí es como hace la recursión, entiendo que si están viendo estos videos de haskell saben lo que es una función recursiva

y saben el algoritmo del cálculo factorial, si no entiendes esto es porque quizás estas en un nivel más básico de programación y conviene primero que aprendas otros lenguajes pero bueno ahí tienes, es con If, esta es la función con condicionales. Esta segunda hace lo mismo pero sin condicionales, es con patrones, que quiere decir esto que en lugar de preguntar los If directamente

se ponen para cuando el factorial el número que recibe es 0, para cuando recibe un cero aquí tienen el formato de la función, para cuando recibe un cero devuelve un uno y para cuando recibe cualquier otro número llamado N que no sea cero pues se llama así misma multiplicándose con menos uno y ahí va restando haciendo la multiplicación. Esto es lo lógico y estos dos es lo que todos los lenguajes hacen,

pero aquí viene la potencia de haskell, tercera definición con predefinidas usando la función product que viene propia del cálculo integrado que tiene haskell multiplicamos todos los números por si mismos desde el uno hasta el numero en cuestión de esa manera recibe un entero y devuelve un entero, recibe el número que tú quieres calcular su factorial y te devuelve el producto de todos los números del uno hasta sí mismo,

así que buenos vamos a calcular si funciona, si ponemos fact1 de cinco que es ciento veinte me da ciento veinte, si invoco a la función numero dos pasándole un cinco me da ciento veinte y si invoco a la función número tres pasándole un cinco me da ciento veinte pero bien ahora esto si yo aquí hago a la siete mil ,huy perdón, fact1 de trescientos tienen todo ese número y si llamo a la tres aunque no parezca

lo que voy a decir pero lo hace más rápido, tarda menos tiempo en ejecutarlo. Bueno espero que te haya gustado este video así que puedes darle like, compartirlo y coméntanos si tienes alguna sugerencia para el siguiente video, un saludo

Si quieres enterarte de los nuevos cursos, suscríbete. No habrá spam, prometido :)

Sobre el autor

foto de jotajotavm
José Javier Villena

jotajota pa los amigos y jota pa los de más cnfianza.

Bio Seria: Analista-Programador en diferentes lenguajes. Tutor PREMIUM de reconocidas plataformas de nivel mundial como CodigoFacilito. Redactor de artículos para Cristalab. Mi canal de YouTube está patrocinado por la editorial ANAYA y LaTostadora. Me gusta explicar con detalle y poner varios ejemplos para que no queden dudas.

Bio Molona: Me presento :) soy informatico, ni frostis d hardware pero muy muxo de programacion, friki a medias o del to segun el dia. Me gusta programar, muxo. Manejo varios lenguajes y tdo lo ke sepa lo comparto x amor al arte. Este no es mi trabjo pero lo ago mejor y con +ganas y calidad que si lo fuera, x eso mismo, xq para mi es divertido. Solo spero al menos algo de agradecimientO!! ;)

Dios, qe gusto haber escrito este parrafo cm me a dao la gana sin pensar en ortografia ni tildes ni historias!!!!!