18 lines
692 B
Prolog
18 lines
692 B
Prolog
substring_task(Str, N, M, Char, SubStr) :-
|
|
sub_string(Str, N, M, _, Span),
|
|
sub_string(Str, N, _, 0, ToEnd),
|
|
sub_string(Str, 0, _, 1, MinusLast),
|
|
string_from_substring_to_m(Str, Char, M, FromCharToMth),
|
|
string_from_substring_to_m(Str, SubStr, M, FromSubToM),
|
|
maplist( writeln,
|
|
[ 'from n to m ':Span,
|
|
'from n to end ': ToEnd,
|
|
'string minus last char ': MinusLast,
|
|
'form known char to m ': FromCharToMth,
|
|
'from known substring to m ': FromSubToM ]).
|
|
|
|
|
|
string_from_substring_to_m(String, Sub, M, FromSubToM) :-
|
|
sub_string(String, Before, _, _, Sub),
|
|
sub_string(String, Before, M, _, FromSubToM).
|