diff --git a/documentatie/verslag.pdf b/documentatie/verslag.pdf index 6efbd45..66a8faa 100644 Binary files a/documentatie/verslag.pdf and b/documentatie/verslag.pdf differ diff --git a/documentatie/verslag.tex b/documentatie/verslag.tex index c4b1b03..0e2b6b6 100644 --- a/documentatie/verslag.tex +++ b/documentatie/verslag.tex @@ -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