En el archivo "cadenas.gs" escribiremos las siguientes funciones:
[indent=4]
def toma_cadena (a:string,i :int,f:int=-1):string
b: string
var bu = new StringBuilder ();
if f==-1
bu.append_unichar(a.get_char(a.index_of_nth_char(i)))
b=bu.str
else
for var p =i to f
bu.append_unichar(a.get_char(a.index_of_nth_char(p)))
b=bu.str
return b
def longitud (a:string):int
return a.char_count()
En el archivo "principal.gs" escribiremos el siguiente código:
[indent=4] a: string init a="áéíóú" stdout.printf ("%i",longitud (a) ) print ("\n") stdout.printf( "%s\n",toma_cadena(a,0,1))
Y para compilar haremos lo siguiente en Geany:
valac -o "%e" cadenas.gs "%f"
o lo que es lo mismo:
valac -o principal cadenas.gs principal.gs
Esto creará un archivo ejecutable que se llamará principal y usará como fuentes ambos archivos. Por lo tanto no dará error al compilar puesto que las funciones que le faltan en el archivo principal.gs las encontrará en cadenas.gs