(* Programmieraufgabe P-19 *) (* Leonhard Fellermayr *) (* Mat.Nr. 221281XXXX *) (* Exponentialfunktion *) let rec pow (basis, exponent) = if exponent = 0 then 1 else if exponent = 1 then basis else basis * pow (basis, exponent-1);; (* Rekursive Hilfsfunktion zum Aufsummieren *) (* lŠuft vom String-Ende nach vorn *) let rec summiere (s, b, aktPos) = if aktPos = 0 then 0 (* Terminierung *) else (* Aufsummieren *) pow (b, String.length(s) - aktPos) * (* b hoch i *) int_of_string (String.sub s (aktPos-1) 1) + (* s[i] *) summiere (s, b, aktPos - 1);; (* Rekurs. *) (* Benutzerfunktion zahlenwert () *) let zahlenwert (s, b) = (* initialer Aufruf von summiere () *) summiere (s, b, String.length (s));; (* Testaufruf *) zahlenwert ("32", 2);; (* EOF *)