• Really Difficult Routine to finish miniPROLOG.com

    From Graham Cooper@grahamcooper7@gmail.com to comp.lang.prolog on Thu May 4 03:52:02 2023
    From Newsgroup: comp.lang.prolog

    PEANO ARITHMETIC is a simple list [1[2[3[4[5]]]]]


    ------- -------- --------
    | 1| . |-----> | 2| . |------> | 3| . |---> NIL
    --|----- --|------ --|-----
    which is incomplete logic


    "Isn't what you're writing really just gibberish?"


    All your logic seems to be at the level of peano arithmetic

    TRY MATCHING STRINGS!




    <?

    $wrd1 = '[ [ a b C ] [ D e ] g ]';
    $wrd2 = '[ [ A B c ] [ [ dd ddd dddd ] e ] G ]';
    smatch( $wrd1 , $wrd2 );
    showv();

    function smatch( $wrd1 , $wrd2 )
    {
    global $v;

    $pos1 = 0;
    $pos2 = 0;
    $brak1 = 0;
    $brak2 = 0;
    $wrd1 = 0;
    $wrd2 = 0;
    while ( ( $wrd1!='') & ($wrd2!='') )
    {
    while ($brak1 < $brak2)
    {
    while ($wrd1 < $wrd2)
    {
    $pos1 = 0;
    $char1 = $wrd1[$pos1];
    $char2 = $wrd2[$pos2];
    if ($char1=='[')
    {
    $brak1++ ;
    $wrd = '';




    }

    }





    function showv()
    {
    global $v;

    echo "****************<br>";
    foreach( $v as $x => $y )
    {
    echo $x . ' = ' . $y . ' ';
    }
    echo "<br>****************<br>";
    }



    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Graham Cooper@grahamcooper7@gmail.com to comp.lang.prolog on Fri May 5 05:07:31 2023
    From Newsgroup: comp.lang.prolog

    AND THE ANSWER IS . . .

    $wrd1 = '[ X [ aa BB CC ] ] [ [ [ dd ddd dddd ] e ] G ]';
    $wrd2 = '[ YY [ AA BB c ] ] [ [ D e ] G ]';




    STRINGS [ X [ aa BB CC ] ] [ [ [ dd ddd dddd ] e ] G ] - [ YY [ AA BB c ] ] [ [ D e ] G ]
    # X [ aa BB CC ] ]# YY [ AA BB c ] ]#
    UNIFY X [ aa BB CC ] ] - YY [ AA BB c ] ]
    #YY#
    YY = X
    X = YY
    #[ AA BB c ]#
    STRINGS [ aa BB CC ] - [ AA BB c ]
    # aa BB CC ]# AA BB c ]#
    UNIFY aa BB CC ] - AA BB c ]
    #AA#
    AA = aa
    #BB#
    BB = BB
    BB = BB
    #c#
    CC = c
    #]#
    #]#
    # [ [ dd ddd dddd ] e ] G ]# [ D e ] G ]#
    UNIFY [ [ dd ddd dddd ] e ] G ] - [ D e ] G ]
    #[ D e ]#
    STRINGS [ [ dd ddd dddd ] e ] - [ D e ]
    # [ dd ddd dddd ] e ]# D e ]#
    UNIFY [ dd ddd dddd ] e ] - D e ]
    #D#
    D = [ dd ddd dddd ]
    #e#
    #]#
    #G#
    G = G
    G = G
    #]#
    TRUE
    --- Synchronet 3.20a-Linux NewsLink 1.114