Compare commits

..

1 commit

Author SHA1 Message Date
28168cb0f1
test: Summer example 2025-05-15 21:25:58 +02:00
3 changed files with 3 additions and 9 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Before After
Before After

Binary file not shown.

View file

@ -131,8 +131,6 @@
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.
@ -152,10 +150,6 @@
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}
@ -173,7 +167,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 ->
@ -189,8 +183,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