В первом томе свого монументального труда А.В. Столяров пытается мне донести опасность побочных эффектов, приводя в пример функции и процедуры 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. почему подсветка кода ломается на функции?











