minu('-').
minu('+').
minu('/').
f(A):-
atom_chars(A,X),
write(X),
fun(X).
fun([]).
fun([A]):-
not(minu(A)).
fun([Hd|Tail]):-
not(minu(Hd)),
fun(Tail).
Я пытаюсь сделать функцию «f», которая берет строку и возвращает True, если «-», «+» или «/» в ней нет.Prolog - Ran in a issue
Но как только я использую рекурсивный вызов. Он просто возвращает false.
EDIT ::
РЕШЕНИЕ НАЙДЕНО ::
Спасибо, Lurker ... И спасибо, Даниэль Лайонс ... Я извиняюсь это был длинный день обучения Пролог ... I должен поспать.
f(A):-
atom_chars(A,X),
write(X),
fun(X).
fun([]).
fun([A]):-
not(minu(A)).
fun([Hd|Tail]):-
not(minu(Hd)),
fun(Tail).
Пожалуйста, покажите примеры запросов с желаемыми результатами. – lurker
query: f ("a + a") Желаемый результат False. –
И этот запрос должен потерпеть неудачу, правильно? – lurker