2017-05-22 4 views

Antwort

0

Dies sollten Sie eine bekommen Vorstellung davon, wie es zu tun:

rem_sublist_first([], []). 

rem_sublist_first([X|Y], [X|Y2]):- 
    \+ X = [_|_], 
    rem_sublist_first(Y, Y2). 

rem_sublist_first([[_|Y1]|Y2], [Y1|Y3]):- 
    rem_sublist_first(Y2, Y3). 

test:- 
    rem_sublist_first([1,[2,3,4]], [1,[3,4]]), 
    rem_sublist_first([1,2,3,[4,5,6]], [1,2,3,[5,6]]). 

ich raten Ihnen Prolog Listen zu studieren, sie für jede Art von Prolog-Programm wesentlich sind, so dass es eine Investition wert ist, wenn Sie Prolog-Code sind goind zu schreiben.

+0

was ist die Bedeutung dieses Satzes "\ + X = [_ | _],"? Danke bro :) –

+0

Es bedeutet "Negation" oder "nicht beweisbar/unifizierbar". Ohne die Negation würde die Klausel auch auf Unterlisten passen, was wir nicht wollen, die Unterlisten sollten nur auf die unten stehende Klausel passen. Kein Problem :) – Limmen

Verwandte Themen