Ich möchte die Anzahl der Elemente vor dem letzten spacebars zählen. Zum Beispiel habe ich eine Liste [a,b,_,_,f,g,h,_,_,_]
und das Endergebnis würde X=3
.Zählung Elemente vor dem letzten spacebars
last_word(String, Word) :-
last_word(String, [], Word).
last_word([], Word, Word) :- !.
last_word([' '|TailString], _, Word) :-
!, last_word(TailString, [], Word).
last_word([Char|TailString], Buff, Word) :-
last_word(TailString, [Char|Buff], Word).
dellast([_],[]) :- !.
dellast([X|T],[X|Y]) :- dellast(T,Y).
num([],0).
num([_|L],N) :- num(L,N1),N is N1+1.
count(L,N) :-
last(L,Elem),
Elem=' ',
dellast(L,D),
last_word(D,W),
num(W,N), !.
count(L,N) :-
last_word(L,W),
num(W,N), !.
'_' sind nicht "spacebars". Sie sind anonyme Variablen, und sie werden mit jedem Prologbegriff vereinheitlichen, ob dieser Begriff eine Variable ist oder nicht. – lurker
Ich denke, sie sollen Leerzeichen sein, unterstreichen nicht. –
@TomasSo ist es an diesem Punkt total spekulativ. – lurker