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}.
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}
@ -167,7 +173,7 @@
De code in~\ref{lst:nesting} komt bijvoorbeeld in de meeste termen voor, weliswaar in verschillende vorm.
\begin{listing}[H]
\begin{minted}{kotlin}
\begin{minted}{kotlin}
/* Function entry logic */
unifyLazy(a, b, subs).forEach { firstResult ->
firstResult.map { firstSubs ->
@ -183,8 +189,8 @@
is AppliedCut -> /* Cut logic */
is AppliedShift -> /* Shift logic */
} } ) } } }
\end{minted}
\caption{Voorbeeld van geneste boilerplate code}\label{lst:nesting}
\end{minted}
\caption{Voorbeeld van geneste boilerplate code}\label{lst:nesting}
\end{listing}
% KERN: Overerving zorgt voor boilerplate