• Finally (almost) got .... go CITY1 CITY2

    From Graham Cooper@grahamcooper7@gmail.com to comp.lang.prolog on Mon May 8 05:12:57 2023
    From Newsgroup: comp.lang.prolog

    Took me all day to get


    ---------- BEGIN 6 ---------
    rd FROM MID
    FROM = 3
    MID = 5

    its 1 step away from CITY 7


    PROGRAM
    =========
    go FROM TO
    :-
    rd FROM TO

    go FROM TO
    :-
    rd FROM MID
    go MID TO


    DATA
    ====
    rd 1 3
    rd 2 4
    rd 3 5
    rd 4 6
    rd 5 7



    TRACE
    ======



    ------ 1 0/0 -----
    query :- go 1 7
    ------------

    FROM ENV 1
    ---------- BEGIN 1 ---------
    go 1 7
    FROM = 1
    TO = 7
    FROMENV:1 BACKENV:1 ENV:1

    ------ 2 0/0 -----
    go FROM TO :- rd FROM TO
    ------------

    FROM ENV 2
    ---------- BEGIN 2 ---------
    rd FROM TO
    FROM = 1
    TO = 7
    ****** 1 ******
    FROM = 1 TO = 7
    ****************
    ****** 2 ******
    FROM = 1 TO = 7
    ****************

    PROGRAM 2

    ------ 3 1/1 -----
    go FROM TO :- rd FROM MID go MID TO
    ------------

    FROM ENV 3
    ---------- BEGIN 3 ---------
    rd FROM MID
    FROM = 1
    MID = 3

    FROM ENV 4
    ---------- BEGIN 4 ---------
    go MID TO
    MID = 3
    TO = 7
    FROM = 3
    TO = 7
    FROMENV:4 BACKENV:4 ENV:4

    ------ 5 0/0 -----
    go FROM TO :- rd FROM TO
    ------------

    FROM ENV 5
    ---------- BEGIN 5 ---------
    rd FROM TO
    FROM = 3
    TO = 7
    ****** 4 ******
    FROM = 3 TO = 7
    ****************
    ****** 5 ******
    FROM = 3 TO = 7
    ****************

    PROGRAM 2

    ------ 6 1/1 -----
    go FROM TO :- rd FROM MID go MID TO
    ------------

    FROM ENV 6
    ---------- BEGIN 6 ---------
    rd FROM MID
    FROM = 3
    MID = 5

    FROM ENV 7
    ---------- BEGIN 7 ---------
    go MID TO
    TO = 7
    MID = FROM
    TO = 7
    FROMENV:7 BACKENV:7 ENV:7

    ------ 8 0/0 -----
    go FROM TO :- rd FROM TO
    ------------

    FROM ENV 8
    ---------- BEGIN 8 ---------
    rd FROM TO
    FROM = 1
    TO = 3
    ****** 7 ******
    FROM = 1 TO = 7 MID = FROM
    ****************
    ****** 8 ******
    FROM = 1 TO = 3
    ****************
    ****** 5 ******
    FROM = 3 TO = 7
    ****************
    ****** 6 ******
    FROM = 1 TO = 7 MID = 5
    ****************
    ****** 2 ******
    FROM = 1 TO = 7
    ****************
    ****** 3 ******
    FROM = 1 TO = 7 MID = 3
    ****************


    YES
    --- Synchronet 3.20a-Linux NewsLink 1.114