Olmo - Funciones

Las funciones son los componentes básicos de un programa Elm. Una función es un conjunto de declaraciones para realizar una tarea específica.

Las funciones organizan el programa en bloques lógicos de código. Una vez definidas, las funciones se pueden llamar para acceder al código. Esto hace que el código sea reutilizable. Además, las funciones facilitan la lectura y el mantenimiento del código del programa.

Pasos para usar una función

Hay tres pasos para usar una función:

Declaración de función

Una declaración de función le dice al compilador sobre el nombre, el tipo de retorno y los parámetros de una función. La sintaxis para declarar una función se da a continuación:

fn_name:data_type_of_the_parameters ->return_type

La declaración de función especifica lo siguiente:

  • Nombre de la función.

  • Tipo de datos de los parámetros. Esto es opcional ya que una función puede tener o no parámetros.

  • Tipo de datos del valor que devolverá la función. Las funciones en Elm siempre deben devolver un valor, ya que Elm es un lenguaje de programación funcional. A diferencia de las funciones de otros lenguajes de programación, las funciones de Elm no utilizan la palabra clave return para devolver un valor.

Definición de función o implementación de función

Una definición de función proporciona el cuerpo real de la función. Una definición de función especifica cómo se haría una tarea específica. La sintaxis para definir una función es la siguiente:

fn_name parameter1 parameter2 = statements

Invocar o llamar a una función

Se debe llamar a una función para ejecutarla. La sintaxis para llamar a una función se da a continuación:

fn_name parameter1 parameter2

Ilustración

El siguiente código define una función saludar. La función devuelve una cadena "Hola".

> greet = \
| if True then \
| "Hello" \
| else \
| "GoodBye"
"Hello" : String
> greet
"Hello" : String

Funciones parametrizadas

Los parámetros son un mecanismo para pasar valores a una función. Los valores de los parámetros se pasan a la función en el momento de la invocación de la función.

Ilustración 1

El siguiente ejemplo define una función fn_add . La función acepta dos números como parámetros y devuelve su suma. Pruebe lo siguiente en elm REPL:

> fn_add x y = x+y
<function> : number -> number -> number
> fn_add 10 20
30 : number

Ilustración 2

El siguiente ejemplo define una función sayHello. La función sayHello acepta y devuelve un valor de cadena como parámetro y devuelve una cadena.

> sayHello name = "Hello "++ name
<function> : String -> String
> sayHello "Tutorialspoint"
"Hello Tutorialspoint" : String
>

Operador de tubería

Para entender el operador de tubería |>, consideremos un ejemplo donde tenemos una lista de diferentes cadenas ["a", "b", "c"] . Ahora necesitamos una sola cadena, que está separada por -

El siguiente ejemplo muestra cómo hacer eso con String.join

> String.join "-" ["a","b","c","d","e","f"]
"a-b-c-d-e-f" : String

La misma acción se puede realizar utilizando un operador de tubería |>. El operador de tubería se puede utilizar para encadenar múltiples llamadas a funciones.

> ["a","b","c","d","e","f"] |> String.join "-"
"a-b-c-d-e-f" : String
> ["a","b","c","d","e","f"] |> List.reverse |> String.join "-"
"f-e-d-c-b-a" : String

En el primer ejemplo, estamos encadenando la lista al método de unión. En el segundo caso, la misma lista se canaliza para revertir la función y luego se canaliza para unirse. Entonces, la lista se muestra invertida y unida.