Bloques de funciones#
Los bloques en esta categoría permiten crear y utilizar nuevas expresiones, llamadas funciones. Así como los procedimientos son comandos definidos por quien programa, las funciones son expresiones definidas por quien programa. Permiten describir de forma más precisa un cálculo realizado el programa. Por ejemplo, si se tienen dos sensores infrarrojos (uno a la derecha y otro a la izquierda) sería útil tener definidas las funciones obstáculo a la derecha y obstáculo a la izquierda en lugar de usar las expresiones primitivas de Arduino en la Escuela que dicen simplemente “obstáculo detectado”. Las funciones pueden ser puras o con procesamiento. Las funciones puras son aquellas sólo describen expresiones. Las funciones con procesamiento pueden requerir además de una expresión, un procesamiento previo para calcular la expresión final. Por ejemplo, una función que describe la cantidad de tiempo que pasa entre dos eventos requiere ejecutar tales eventos y contar la cantidad de tiempo transcurrido para, finalmente describir esa cantidad.
Invocación a una Función#
Este bloque permite invocar a una función. Utilizando el ícono del lápiz se puede cambiar el nombre de la función que se está invocando. Para que la invocación funcione correctamente, la función debe estar definido en algún lugar del programa. Utilizando el ícono del engrane se puede crear un bloque de definición para la función en cuestión (este ícono sólo aparece en los bloques de invocación de las funciones que no estén definidas así que, una vez que la función esté definida, desaparecerá).
Definición de Función Pura#
Este bloque define el comportamiento de una función pura. Utilizando el ícono del lápiz se puede cambiar el nombre de la función que se está definiendo. Cuando se invoque a esta función, la expresión descripta será la que se encuentre en el operando de este bloque. Notar por su forma que es un bloque de definición y no una expresión. Esto significa que agregar este bloque al programa sólo define el significado pero no ordena su ejecución. Para que el programa efectivamente ejecute la función definida por este bloque se debe invocar a la función utilizando un bloque de invocación de función en alguna parte del código que sí vaya a ejecutarse. Se puede agregar un bloque de invocación utilizando el ícono de la mano.
Definición de Función Con Procesamiento#
Este bloque define el comportamiento de una función con procesamiento. Funciona igual que el bloque de definición de funciones puras con la excepción de que al ser invocada la función que se está definiendo con este bloque, antes de describir la expresión que se encuentre en el operando de este bloque, se ejecutan las instrucciones que se encuentren dentro de su cuerpo.