Pierwsze kroki w prologu

0

Mam takie pytanie od czego zacząć jak się chcę programować w prologu mam takie zapytanie lubi(jas,piernik).
To mi interpretor w prologu zwraca

ERROR: toplevel: Undefined procedure: (-)/2 (DWIM could not correct goal)

I teraz jak te pliki skompilować czy da się jakoś prologu użyć w php albo jakimś innym imperaktywnym języku

2

To co napisałeś, tj. lubi(jas,piernik). to nie zapytanie tylko fakt. Wrzucasz sobie takie fakty i/lub predykaty do pliku, zapisujesz go, np. foo.pl i uruchamiasz swipl foo.pl, zakładając, że korzystasz z SWI-Prologa. Wyświetla się prompt i dopiero tutaj możesz zadawać Prologowi pytania, np. lubi(X,Y).

0

Ale nadal mi się wyświetla niezdefiniowana procedura polecenie write('Cześć'). wyświetliło dobrze

Natomiast nie wiem jak się deklaruje funkcje w prologu

I czy da się kod w prologu skompilować do kodu maszynowego ?

0

Proponuje zajrzeć np. na Learn Prolog Now lub do ksiązki The Art of Prolog. Warto zrozumieć podstawy, a nie krążyć po omacku, szczególnie, że Prolog ani trochę nie przypomina mainstreamowych języków.

Mi wyświetla się wszystko dobrze, zgodne z tym co napisałem. W pliku foo.pl mam jedną linijkę, w której jest lubi(las,piernik)., uruchamiam swipla i oto efekty

Welcome to SWI-Prolog (threaded, 64 bits, version 7.6.4)
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software.
Please run ?- license. for legal details.

For online help and background, visit http://www.swi-prolog.org
For built-in help, use ?- help(Topic). or ?- apropos(Word).

?- lubi(X,Y).
X = las,
Y = piernik.

?- lubi(X,piernik).
X = las.

?- lubi(X,robot).
false.

?- lubi(las,Y).
Y = piernik.

?- lubi(fretka,pustynia).
false.
0

No teraz działa dobrze chyba nie wyspany jestem dzisiaj.

0

A nie da się jakoś, żeby wpisując swipl foo.pl wypluwał nam gotowe argumenty np true albo false albo czy jest jakiś argument do programu swipl który można np przekazać lubi(pies,kot) Bo co chcę zrobić chcę, żeby za pomocą funkcji system w php użyć swipl.

0
<?php
$baza = new mysqli("localhost","root","","sztuczna");
function dodaj_nowe_pojecie($pojecie1,$pojecie2) {
    global $baza;
    $id_pojecie_2 = $baza->query("select id from pojecia where nazwa = '$pojecie2'");
    $id_pojecie_2_2 = mysqli_fetch_array($id_pojecie_2);
    if ($id_pojecie_2_2[0] =="") return -1;
    $baza->query("insert into pojecia(nazwa) values('$pojecie1')");
    $id_pojecie_1 = $baza->query("select id from pojecia where nazwa = '$pojecie1'");
    $id_pojecie_1_1 = mysqli_fetch_array($id_pojecie_1);
    //print $id_pojecie_1_1[0];
    $baza->query("insert into przekierowanie(id_1,id_2) values('$id_pojecie_1_1[0]','$id_pojecie_2_2[0]')");
    
    
}







if (isset($_POST["dodaj"])) {
   $log =  dodaj_nowe_pojecie($_POST["pojecie1"],$_POST["pojecie2"]);
    if ($log == -1) print "Nie znalezione takiego pojęcia";
}
if (isset($_POST["zobacz"])) {
//wybierz_ilosc_rekordow()
$id = wybierz_id_pojec($_POST["pojecie1"],$_POST["pojecie2"]);
if ($id[0] != "" and $id[1] != "") $bool = znajdz_fraze($id[0],$id[1]);
else $bool = 1;
print $bool;
}



function wybierz_id_pojec($pojecie1,$pojecie2) {
    global $baza;
    $poj1 = $baza->query("select id from pojecia where nazwa = '$pojecie1'");
    $poj11 = mysqli_fetch_array($poj1);
    $poj2 = $baza->query("select id from pojecia where nazwa = '$pojecie2'");
    $poj22 = mysqli_fetch_array($poj2);
    return array($poj11[0],$poj22[0]);

}


function wybierz_ilosc_rekordow() {
    global $baza;
    $ilosc_rekordow = $baza->query("select count(*) from przekierowanie");
    $ilosc_rekordow = mysqli_fetch_array($ilosc_rekordow);
    return $ilosc_rekordow[0];
    
}

function znajdz_fraze($id1,$id2,$licznik = "") {
    global $baza;
    
    $count = wybierz_ilosc_rekordow();
    if ($licznik > $count) return 1;
    //if ($licznik != "") $i = $licznik;
    //else $i = 0;
    //for ($i=$licznik;$i <= $count;$i++) {
        $sprawdz = $baza->query("select id_1,id_2 from przekierowanie where id_1 = '$id1' and id_2 = '$id2' or id_1 = '$id1' ");
        $sprawdz2 = mysqli_fetch_array($sprawdz);
        //print $sprawdz2[0];
        $i = 0;
        if ($sprawdz2[0] == "") {
            //$id2 = $id1;
            list($id2, $id1) = array($id1, $id2);
            $i++;
            znajdz_fraze($id1,$id2,$i);
        }
        if ($sprawdz2[0] != "") {
         return 3;
        }
        
    //}
    
    return 1;
}


?>


<script src=".bootstrap/js/bootstrap.min.js"></script>
<link href="./bootstrap-3/css/bootstrap.min.css" rel="stylesheet"> 
<link href="https://fonts.googleapis.com/css?family=Lato:400,700,700i,900" rel="stylesheet">
    <link href="https://use.fontawesome.com/releases/v5.0.8/css/all.css" rel="stylesheet">
    <link href="./style.css" rel="stylesheet">
  <section class="top_section">
  xcx
  </section>
<header class="page_header">
</header>
<nav class="navbar navbar-inverse navbar-fixed-top">
  <div class="container">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#"><span class="glyphicon glyphicon-tags" aria-hidden="true"></span> Super Aukcje</a>
    </div>
    <div id="navbar" class="collapse navbar-collapse">
      <ul class="nav navbar-nav">
        <li><a href="#">Kupuj</a></li>
        <li><a href="# ">Sprzedawaj</a></li>
        <li><a href="# ">Moje konto</a></li>
      </ul>
    </div><!--/.nav-collapse -->
  </div>
</nav> 
<form action=index.php method=post>
Pojęcie 1<input type=text name=pojecie1><br>
Pojęcie 2<input type=text name=pojecie2>
<input type=submit value=dodaj name=dodaj>
</form>
<form action=index.php method=post>
Pojęcie 1<input type=text name=pojecie1><br>
Pojęcie 2<input type=text name=pojecie2>
<input type=submit value=zobacz name=zobacz>
</form>

1 użytkowników online, w tym zalogowanych: 0, gości: 1