Haskell

Haskell 05: Estructura IF

20 videos

111 minutos

Hola mundo como están, mi nombre es José y les doy la bienvenida este nuevo tutorial del curso de haskell. Donde vamos a prender en este video cómo funciona la estructura if en este lenguaje. Así que pues vamos hacer una función donde aquí nos vamos a crear una función que va a llamar divisible y va analizar, si dos números son divisibles o no aquí pongo los dos números que vamos a elegir

como parámetros x y vamos a ver a qué cosa son igual esta función este, = hace referencia al valor que tendrá la función y que tendrá que retornar, y no a un cambio en el valor de las variables porque el valor de las variables siempre será la misma, así que no lo vamos a tocar solamente el valor de la función, ok. Así que aquí voy a preguntar lo siguiente divisble x y = if y voy poner aquí si el resto que meda es igual a 0, el resto lo voy a poner entre paréntesis

para que me dé un resultado global, no es que esté poniendo la condición del if entre paréntesis no la condición de if no va entre paréntesis, solamente lo que estoy haciendo aquí es que el valor del resto para después que todo eso me lo iguale a cero para hacer eso como lo hacían así que yo pongo aquí, divisible x y = if (x ‘mod’ y) == 0 entonces lo que hago es que valor que va a tener divisibles

es igual a “son divisibles” y si no tienen que poner “no son divisibles” y escuchen. Esto que es importante en haskell es obligatorio que todo if tenga su then y su else no se puede obviar ninguna circunstancia todo eso se puede poner en una línea, pero creo que así es un, poco mejor, pero mejor para verlo no se ha mejor para el lenguaje que se entienda mejor, pero si ponen un 'if' tiene que poner qué ocurre si es correcto

y que ocurre siempre si es incorrecto o sea es obligatorio siempre poner el 'else' y recuerden, pues la condición no se pone con paréntesis si yo pongo esto if (x ‘mod’ y) == 0 el resto de x y y es igual a cero entonces y este valor then ‘son divisibles’ es lo que le voy a igualar a la función y sino else ‘no son, divisibles’ es lo que va a valer la función no es lo que va a valer ni la x, ni la y.

Ahora aquí vengo y voy hacer una cargar :r haskell.hs de este archivo me compila perfecto y voy aquí divisible 8 4, son divisibles y si aquí digo divisible 8 3, no son divisibles vieron pues yo aquí también puedo comprobar si bueno. Para hacer más con estos if voy a cambiarles el nombre a divisible y aquí voy a comprobar si es mayor entonces pongo esMayor va recibir dos números x y (y) ahora aquí digo if x > y, entonces aquí pongo then “es mayor”

y sino else “no es mayor” guardo y aquí recargo el archivo :r, para que me reconozca la nueva función ahora la llamada pongo aquí esMayor. Las funciones importante no pueden comenzar con mayúsculas esto es importante las funciones su nombre tiene que comenzar con minúscula pero bueno eso ya es un detalle pequeño. Aquí pongo es mayor 9 3, es mayor y si le digo es mayor 2 6, no es mayor vieron así es como funciona la estructura if

se pone if de hay después la pregunta que se quiera comprobar sin paréntesis (al menos que aquí ustedes tengan que hacer una llamada a una función), entonces hay si poner paréntesis como ya vimos el ejemplo anterior simplemente porque están haciendo una llamada por cualquiera otra cuestiones para que ese nuevo valor se reconozca mejor como un valor propio después el then y luego el else y bueno pues esto es así por ejemplo podemos hacer otra prueba,

que nos va a dar nos va a sumar diez solamente a los números que sean mayores que 20 por ejemplo entonces aquí digo sumaDiezAMayoresQueVeinte, es un nombre muy largo pero bueno recibo aquí un parámetro x y, luego aquí digo if x > 20 entonces then x + 10 pero sino else x se va a quedar igual pues yo ahora aquí digo sumaDiezAMayoresQueVeinte 30 me da un 40 si le paso un 5 me devuelve un 5 si le paso un 20 me devuelve un 20 porque no es mayor

y yo aquí le pongo else “no es mayor” y guardo vamos a ver lo que sucede, pues no me compila porque en haskell no puede ser que aquí le diga aquí es un valor numérico y aquí me diga que es valor string esto no es posible o es una cosa o es otra pero vieron lo que comentamos en otros videos que el tipo de dato es algo estricto o sea una misma variable no se puede andar con andar mirando unas variables

con otras, no se puede andar sumando enteros con cadenas haciendo ese tipo de cosas, pues si tratamos a x desde un punto numérico bien puede ser que sea un entero o un decimal eso es otra cuestión pero lo que no podemos dar el valor exacto de que sea numérico o string, entonces aquí no podemos poner un mensaje porque lo estamos tratando como un número, entonces lo que tenemos que hacer es dejarlo tal como está, sin que cambie nada tampoco podemos anular este else

por el hecho que no se va hacer nada porque eso es obligatorio ponerlo entonces como algo hay que ponerlo simplemente se lo deja como esta para que no haiga ningún cambio en esa situación. Bueno pues este ha sido el tutorial para que vean como ha sido la estructura de cómo funciona el if en haskell espero que les guste pueden darle like, compartirlo, suscribirse y nos vemos en siguientes videos.

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!!!!!