Compare commits

...

3 commits

Author SHA1 Message Date
a1187238c3
test: Summer example 2025-05-18 12:28:13 +02:00
26c339b8f8
Update PDF 2025-05-12 19:58:14 +02:00
c6f829a60f
Update figures en PDF 2025-05-12 19:55:00 +02:00
4 changed files with 31 additions and 3 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Before After
Before After

Binary file not shown.

View file

@ -131,6 +131,8 @@
Het unificatie-algoritme is gebaseerd op Robinsons Unificatie-algoritme, zoals beschreven door~\cite{boizumault-1993}, met inspiratie van~\cite{russell2016}.
Merk op dat er gebruik gemaakt wordt van de \textit{occurs check}.
De broncode voor het algoritme kan teruggevonden worden in \texttt{prolog/logic/unification.kt}.
\subsection{Cut}\label{subsec:cut}
De cut operator geeft altijd een \mintinline{kotlin}{Result.failure(AppliedCut)} terug wanneer \mintinline{kotlin}{satisfy} wordt opgeroepen.
@ -150,6 +152,10 @@
In dit geval zal de \mintinline{kotlin}{AppliedShift} steeds doorgespeeld worden, totdat de \mintlinline{kotlin}{Reset} de uitzondering opvangt.
Daarna gaat het programma verder met de nieuwe substituties en continuatie.
De broncode voor de meta abstracties kan teruggevonden worden in
\texttt{prolog/builtins/delimitedContinuationsOperators.kt}.
\section{Resultaat}\label{sec:resultaat}

22
examples/basics/summer.pl Normal file
View file

@ -0,0 +1,22 @@
summer(Start, End, 0) :- Start == End.
summer(Start, End, Sum) :-
Start \== End,
Next is Start + 1,
summer(Next, End, Rest),
writeln(rest(Rest)),
Sum is Start + Rest,
writeln(sum(Sum)).
my_sum :-
write('Enter start: '),
read(Start),
write('Enter end: '),
read(End),
summer(Start, End, Sum),
write('The sum is: '),
write(Sum), nl.
main :-
summer(1, 5, Sum).
:- initialization(main).