В предложении выделить группу самых коротких слов - Prolog

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

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

В предложении выделить группу самых коротких слов. Вывести на экран слова, начинающиеся и заканчивающиеся на одну и ту же букву.
Не могу понять что не так

Решение задачи: «В предложении выделить группу самых коротких слов»

textual
Листинг программы
%trace
domains
    s=string i=integer
predicates
    law(string,string) 
    gtwrd(string,string,string,string) 
    longer(string,string)  
    length(string,integer)  
    do(s)
    test(s)
clauses
    do("").
    do(S):- 
        fronttoken(S,T,R), 
        test(T),
        do(R).
        
    test(T):-        
        str_len(T,L), LL=L-1,   
        frontstr(LL,T,_,Last),     
        frontstr(1,T,First,_),
        First = Last,
        write(T), nl.
    test(_).    
    
    gtwrd(S,W,E,T):-
        frontchar(S,C,S1),
        NOT(C=' '),
        str_char(SS,C),
        concat(W,SS,R),
        gtwrd(S1,R,E,T),!.
    gtwrd(S,W,W,R):-
        frontchar(S,_,R).
    gtwrd(S,W,W,S).
    
     longer(A,B):-
        length(A,LenA),
        length(B,LenB),
        LenA>LenB.
        
        length("",0):-!.
    length(S,N):-
        frontchar(S,_,S1),
        length(S1,N1),
        N=N1+1.
    
       law("",""):-!.
    law(S,W):-      
        gtwrd(S,"",WW,SS),NOT(SS=""),
        law(SS,WWW),
        NOT(longer(WWW,WW)),
        W=WWW.
    law(S,W):-
        gtwrd(S,"",W,_).
goal
    clearwindow,
    S="area yoy Losing my insanity",
    do(S).

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


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

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

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