Problemilla con ADA

sh31k

Buenas noches MV, tengo una duda con un programa en ADA (Estoy empezando con este lenguaje asi que no me metais mucha mierda xD):

Bien, me piden una función que cuente el número de digitos (0123456789) que aparecen en una ristra (unbounded), y que almacene cada uno de ellos en un array predefinido en las librerías de ADA llamado Digits_Count, de forma que en cada posición de ese array quede guardado el número de digitos diferentes que encuentre, es decir:

En la posición 0 del array aparecerá el número de 0's que aparezcan en la ristra
En la posición 1 del array aparecerá el número de 1's que aparezcan en la ristra
En la posición 2 del array aparecerá el número de 2's que aparezcan en la ristra
...

Tengo esto:

with Arrays;   use Arrays;
with Ada.Strings.Unbounded; use Ada.Strings.Unbounded;
with Ada.Strings.Maps;      use Ada.Strings.Maps;
with Ada.Strings;           use Ada.Strings;

function Frec_Digits (Ristra : Unbounded_String) return Digits_Count is
   p : Standard.Integer;

begin
	for I in Ristra'Range loop
      p := Count (Ristra, To_Set("0123456789"));
      Digits_Count(i) := p;
   end loop;
   

return Digits_Count; end Frec_Digits;

Y no consigo averiguar como solucionarlo. Alguien tiene idea de que tengo que modificar?

PD1: no os riais, que estoy algo verde xD.

PD2: Por si sirve de algo dejo el error que me da el compilador, un saludo y gracias de antemano xD

spoiler

Usuarios habituales

  • sh31k