Update PDF

This commit is contained in:
Tibo De Peuter 2025-05-12 19:58:14 +02:00
parent c6f829a60f
commit 26c339b8f8
Signed by: tdpeuter
GPG key ID: 38297DE43F75FFE2
2 changed files with 9 additions and 3 deletions

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}. 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}. 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} \subsection{Cut}\label{subsec:cut}
De cut operator geeft altijd een \mintinline{kotlin}{Result.failure(AppliedCut)} terug wanneer \mintinline{kotlin}{satisfy} wordt opgeroepen. 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. 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. 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} \section{Resultaat}\label{sec:resultaat}
@ -167,7 +173,7 @@
De code in~\ref{lst:nesting} komt bijvoorbeeld in de meeste termen voor, weliswaar in verschillende vorm. De code in~\ref{lst:nesting} komt bijvoorbeeld in de meeste termen voor, weliswaar in verschillende vorm.
\begin{listing}[H] \begin{listing}[H]
\begin{minted}{kotlin} \begin{minted}{kotlin}
/* Function entry logic */ /* Function entry logic */
unifyLazy(a, b, subs).forEach { firstResult -> unifyLazy(a, b, subs).forEach { firstResult ->
firstResult.map { firstSubs -> firstResult.map { firstSubs ->
@ -183,8 +189,8 @@
is AppliedCut -> /* Cut logic */ is AppliedCut -> /* Cut logic */
is AppliedShift -> /* Shift logic */ is AppliedShift -> /* Shift logic */
} } ) } } } } } ) } } }
\end{minted} \end{minted}
\caption{Voorbeeld van geneste boilerplate code}\label{lst:nesting} \caption{Voorbeeld van geneste boilerplate code}\label{lst:nesting}
\end{listing} \end{listing}
% KERN: Overerving zorgt voor boilerplate % KERN: Overerving zorgt voor boilerplate