Есть еще одна проблема:
Есть список с некоторыми словами. Если длина слова превышает заданную длину (например, 4), оно будет занесено в другой список.
Я пытался:
require_min_length([], _, []).
require_min_length([Word|Words], Minl, [List]):-
word_length(Word, W), % method word_length return the length of a word.
(W >= Minl -> append(Word, List, List), require_min_length(Words, Minl, List);
require_min_length(Words, Minl, List)).
Результаты, которые я получил:
| ?- Words=["ABCD", "ABCDE", "AAA"], require_min_weight(Words, 5, Lists).
! Resource error: insufficient memory.
Правильный результат будет:
Lists = [[65, 66, 67, 68, 69]]. (% ascii)
Как изменить код? Любая помощь, пожалуйста! Спасибо.