All pastes #500058 Raw Edit

Something

public text v1 · immutable
·published 2007-05-21 12:33 UTC
rendered paste body
cheapFlight(newyork, [ohio, indiana, newjersey]).
cheapFlight(newjersey, [ohio, newyork]).
cheapFlight(ohio, [newyork, indiana, newjersey]).
cheapFlight(indiana, [ohio, illinois, newyork, texas]).
cheapFlight(texas, [utah, illinois, indiana]).
cheapFlight(illinois, [indiana, texas]).
cheapFlight(utah, [washington, california, texas]).
cheapFlight(washington, [utah, california]).
cheapFlight(california, [washington, utah]).

connected(A, A, Acc, Acc).

connected(A, B, Acc, Path) :-
        cheapFlight(A, DirectRoutes),
        member(B, DirectRoutes),
        append(Acc, [B], Path).

connected(A, B, Acc, Path) :-
        cheapFlight(A, [Via|DirectRoutes]),
        append(Acc, [Via], AccNew),
        connected(Via, B, AccNew, Path).

connectedPath(A, B, Path) :-
        append([], [A], AccP),
        connected(A, B, AccP, Path).