В первом томе свого монументального труда А.В. Столяров пытается мне донести опасность побочных эффектов, приводя в пример функции и процедуры Pascal. И как C плох тем, что в нем только функции. В своем интерьвю он тоже про это упоминает.
Но я ничего не понел.
Возьмем его же пример свободной от побочных эффектов процедуры:
procedure NegotiateSize(var res: integer);
var
h: integer;
begin
repeat
write('Enter H: ');
readln(h)
until (h > 0) and (h mod 2 = 1);
res := h
end;
И аналогичную функцию с побочным эффектом:
function NegotiateSize: integer;
var
h: integer;
begin
repeat
write('Enter H: ');
readln(h)
until (h > 0) and (h mod 2 = 1);
NegotiateSize := h
end;
Объясните мне, где тут побочный эффект?
p.s. почему подсветка кода ломается на функции?