Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,53 @@
|
|||
minimum_abbreviation_length(Day_names, Min_length):-
|
||||
sort(Day_names, Sorted_names),
|
||||
minimum_abbreviation_length(Sorted_names, Min_length, 1).
|
||||
|
||||
minimum_abbreviation_length([_], Min_length, Min_length):- !.
|
||||
minimum_abbreviation_length([Name1, Name2|Rest], Min_length, M1):-
|
||||
common_prefix_length(Name1, Name2, Length),
|
||||
M2 is max(M1, Length + 1),
|
||||
minimum_abbreviation_length([Name2|Rest], Min_length, M2).
|
||||
|
||||
common_prefix_length(String1, String2, Length):-
|
||||
string_chars(String1, Chars1),
|
||||
string_chars(String2, Chars2),
|
||||
common_prefix_length1(Chars1, Chars2, Length, 0).
|
||||
|
||||
common_prefix_length1([], _, Length, Length):-!.
|
||||
common_prefix_length1(_, [], Length, Length):-!.
|
||||
common_prefix_length1([C1|_], [C2|_], Length, Length):-
|
||||
C1 \= C2,
|
||||
!.
|
||||
common_prefix_length1([C|Chars1], [C|Chars2], Length, L1):-
|
||||
L2 is L1 + 1,
|
||||
common_prefix_length1(Chars1, Chars2, Length, L2).
|
||||
|
||||
to_upper_case([], []):-!.
|
||||
to_upper_case([String|S], [Upper_case|U]):-
|
||||
string_upper(String, Upper_case),
|
||||
to_upper_case(S, U).
|
||||
|
||||
process_line(""):-
|
||||
nl,
|
||||
!.
|
||||
process_line(Line):-
|
||||
split_string(Line, "\s\t", "\s\t", Day_names),
|
||||
to_upper_case(Day_names, Upper),
|
||||
minimum_abbreviation_length(Upper, Length),
|
||||
writef('%w %w\n', [Length, Line]).
|
||||
|
||||
process_stream(Stream):-
|
||||
read_line_to_string(Stream, String),
|
||||
String \= end_of_file,
|
||||
!,
|
||||
process_line(String),
|
||||
process_stream(Stream).
|
||||
process_stream(_).
|
||||
|
||||
process_file(File):-
|
||||
open(File, read, Stream),
|
||||
process_stream(Stream),
|
||||
close(Stream).
|
||||
|
||||
main:-
|
||||
process_file("days_of_week.txt").
|
||||
Loading…
Add table
Add a link
Reference in a new issue