<div class="notebook">
<div class="nb-cell program" name="p1">
leftpad(Pad, To_Length, ListIn, ListOut) :-
integer(To_Length),
proper_length(ListIn, N),
Dif is To_Length - N,
a_prefix(Dif, Pad, Prefix),
append(Prefix, ListIn, ListOut).
a_prefix(N, _, []) :- N =< 0, !.
a_prefix(N, Pad, [Pad|Tail]) :- N > 0,
M is N - 1,
a_prefix(M, Pad, Tail).
</div>
<div class="nb-cell query" name="q1">
leftpad(P, 5, [2, 3], Out).
</div>
<div class="nb-cell query" name="q2">
leftpad(P, 2, [2, 3, 7, 8], Out).
</div>
</div>