Найти количество чисел в тексте - Prolog
Формулировка задачи:
Как найти количество чисел (то есть любая последовательность цифр ) в тексте?
Решение задачи: «Найти количество чисел в тексте»
textual
Листинг программы
predicates
isdigit(char)
count_rec(string,integer,integer,integer)
count(string,integer)
clauses
isdigit(C) :- C <= '9', C >= '0'.
count(Text, Num) :- count_rec(Text, 1, 0, Num).
count_rec("", _, Num, Num) :- !.
count_rec(Text, State, Accum, Num) :-
frontchar(Text, Ch, Rest),
isdigit(Ch),
!,
NewAccum = Accum + State,
count_rec(Rest, 0, NewAccum, Num).
count_rec(Text, _, Accum, Num) :-
frontchar(Text, _, Rest),
count_rec(Rest, 1, Accum, Num).
goal
Text = "12a7b23c01",
count(Text, Num),
write(Text, " -> ", Num), nl.