мне нужно отфильтровать список [#,d,e,#,f,g]
таким образом, что я получаю результат, как [[d,e],[f,g]]
,
я застрял при создании нового списка каждый раз, когда я сталкиваюсь с «#», есть ли способ сделать это? Я попытался код ниже,список фильтров в отдельные списки
filterL([],List) :-[].
filterL([Head|Tail],X) :-
( Head \='#'->
append(X,Head,List),
filterL(Tail,List)
; filterL(Tail,X)
).
'%' является комментарием, так что используйте кавычки, как '[ '%', д, e, '%', f, g] ' – false
... иначе неясно, что означает ваша программа. «Список» в первом предложении не имеет никакого смысла. Вероятно, вам нужен предикат arity 3 not 2. В Prolog нет операторов возврата. – false
@false он должен просто вернуть пустой список. – sand