Написать программу, которая бы перебирала базу данных об именах - Prolog

Узнай цену своей работы

Формулировка задачи:

написать программу, которая бы перебирала базу данных об именах и выводила бы первые 5 у которых длина менее 3 символов. (Длина сроки визначаетьься с помощью предиката len (string))

Решение задачи: «Написать программу, которая бы перебирала базу данных об именах»

textual
Листинг программы
name(alex).
name(kljlk).
name(jkljkew).
name(hhj).
name(w).
name(q).
name(oiio).
name("ej").
name(p).
name(qq).
name(g).
name(nm).
 
 
len([],0):-!.%вычисление длины списка (слова)
len([_|T], L) :- len(T, L1), L is L1 + 1.
 
get3(X) :- findall(X, (name(X), atom_length(X, LX), LX < 3), X).%получение всех атомов (имен) с сдлиной менее 3
 
gn(0, _, []) :- !.%получение n первых элементов списка
gn(N, L, L):- len(L, LL), N > LL, !.
gn(N, [H|T], [HStr|NewList]):- not(atomic(H)), string_to_list(HStr, H), N1 is N - 1, gn(N1, T, NewList).
gn(N, [H|T], [H|NewList]):- N1 is N - 1, gn(N1, T, NewList).
 
 
getWordList(X) :-  get3(AllWords), gn(5, AllWords, X).%получение требуемого результата

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5
Похожие ответы