Редактировать

Изменения в языке 3.8.3

Цикл for с шагом

Цикл for допускает теперь указание шага step:

begin
  for var i:=1 to 6 step 2 do
    Print(i);
  Println;
  for var c:='f' to 'a' step -2 do
    Print(c);
end.

Вывод:

1 3 5 
f d b 

Для цикла for с шагом запрещен модификатор downto.

Нулевой шаг вызывает исключение ZeroStepException

Цикл foreach c индексом

В цикле foreach допустимо использовать индекс:

begin
  foreach var x in Arr(1,2,3) index i do
    Println(i,x);
end.

Вывод:

0 1 
1 2 
2 3 

Стандартная библиотека

Cтандартная функция TypeName

begin
  var o: (integer,integer)->() := (x,y)->Print(1);
  Println(TypeName(o));
  var o1 := new List<integer>[2,3];
  Println(TypeName(o1));
end.

Вывод:

array [,] of List<integer>
(integer,integer) -> () 

Исправление важных ошибок

Исправлен баг с перенаправлением ввода

Баг и его исправление описаны здесь.

Исправление бага позволяет решать интерактивные олимпиадны задачи, в т.ч. с сайта acmp.ru.

Спасибо Фёдору Меньшикову.