Icon
Aunque los nombres y palabras utilizadas en ICON se asemejen más a Pascal, el funcionamiento es más similar al que se le da en C, y puede devolver valores.Por ejemplo: Aquí, la subcadena “or” se repite 3 veces a lo largo de la cadena, en la posición 3, 23 y 33.Si el resultado de un generador no da lugar al éxito de la expresión que encierra, entonces la condición falla, pero el generador se reanuda para producir otro valor.Un ejemplo: En este ejemplo, el primer resultado obtenido sería 3, pero como no cumple la condición de que sea menor que 5, la expresión falla, pero se volverá a ejecutar hasta encontrar el siguiente resultado, 23, que sí cumple la condición impuesta (23 > 5), y lo mismo ocurre con el 33.La anterior expresión se puede expresar también de la siguiente manera: Es posible utilizar las expresiones en situaciones difíciles y rebuscadas, como por ejemplo: Tendrá éxito cuando la subcadena “or”, de la cadena sentence1, se encuentre en la misma posición que la subcadena “and” en la cadena sentence2.Los procedimientos podrán ser usados para añadir generadores al repertorio de los incluidos en ICON.Otra función de combinación es la “tab(i)”, que se establece en la posición ‘i’ y devuelve la subcadena contenida entre las anteriores y las nuevas posiciones.“find()” encuentra una posición, que es utilizada por “tab” para producir las subcadenas.Los valores de una lista no tienen porque ser todos del mismo tipo.Se pueden añadir valores en una lista directamente a una posición.Por ejemplo: Esta instrucción cambiaría el último valor de la lista “car1” a 2400.Así: Escribe todos los valores en L. Las listas pueden ser manipuladas como pilas o colas.Del mismo modo, “pop(L)” elimina el valor del extremo izquierdo de la lista, disminuyendo automáticamente en 1 el tamaño total, además de devolver el valor eliminado.Alternativamente, “set(L)” produce un conjunto de los valores en la lista L. Por ejemplo: Se asigna al conjunto que contiene el entero 1, la cadena “abc” y una lista vacía.