Ошибки PascalABC.NET

У меня показывает версию 1367, и она якобы последняя.

// создаём последовательность синусов:
var sq := Range(0, 90)
         .Select(i -> Sin(i * PI / 180.0))
         .Println;
Println; 

// создаём словарь:
var dic := sq
          .ToDictionary(i -> 
           Round(ArcSin(i) * 180.0 / PI))
.Println;

Println;    
// печатаем таблицу:
for var i := 0 to 90 do
begin
    Console.Write(' Угол = ' + i.ToString().PadLeft(2));
    //Console.WriteLine(' Синус = ' + dic.ElementAt(i).Value);
    Console.WriteLine(' Синус = ' + dic[i].Value);
end;

А у словарей такое свойство имеется.

Что-то тут не так…

Я там писал по поводу двух вариантов суммирования Range и числа, которые теперь всюду работают, а ошибка со словарём выдаётся и у дистрибутива и у скомпиллированного из GitHub кода.

У меня так не работает:

Специально перепроверил - работает 1 2 3 4 5 6 7 8 9 10 0

А у меня не работает. Версия актуальная - с сайта.

Я даже перезагрузился на всякий случай - версия с сайта всё равно работает. Вообще там иногда при смене версий непонятно откуда продолжают тянуться какие-то библиотеки, а так как у меня стоит и другая версия с GitHub где проблема судя по коду исправлена, то не знаю что и сказать.

Попробую обновить версию.

Нет перегруженной подпрограммы с такими типами параметров

Не работает. Версия с сайта, сборка 1367 от 20.12.2016

Обновился - не работает. Чудеса продолжаются…

Ошибка, bug #324 была исправлена 22, то есть она и не должна работать. Видимо у меня где-то болтается уже исправленная библиотека которую я компилировал 23.

Стала доступна сборка 1370 от 24.12.2016, в ней ошибка с Range(1, 10) + 0 устранена.

Ура, заработало!

Метод Println возвращает исходную последовательность, но компилятор этого не понимает:

А где ошибка? Println возвращает sequence of T. Все верно

А почему не List, как до него? Какой тогда смысл в методе ToList и ему подобных?

var dict1:= Range(1,25).ToDictionary;
var dict2:= Range(1,25).ToDictionary.Println;

var tl1:= Range(1,25).ToLookup;
var tl2:= Range(1,25).ToLookup.Println;

var ll1:= Range(1,25).ToLinkedList;
var ll2:= Range(1,25).ToLinkedList.Println;

var hs1:= Range(1,25).ToHashSet;
var hs2:= Range(1,25).ToHashSet.Println;

Мне кажется, метод печати не должен изменять тип последовательности…

Не всегда.

Ну, Print описан так function Print<T>(Self: sequence of T; delim: string): sequence of T; extensionmethod;

— Выпрямители там, тумбы разные, — говорил Хлебовводов. — это нам товарищ врио довольно хорошо объяснил. А имеется неприложенный факт, [skip] Не сходятся у вас концы с концами. непонятно нам, что же говорит по данному поводу наука. (А. и Б. Стругацкие. “Сказка о Тройке”)

Замечательно, что Print “описан так”, но только почему тогда такой эффект, как у меня приведен?

Старичок словно взорвался. — Высочайшее достижение нейтронной мегалоплазмы! — провозгласил он. — ротор поля наподобие дивергенции градуирует себя вдоль спина и там, внутре, обращает материю вопроса в спиритуальные электрические вихри, из коих и возникает синегдоха отвечания… (там же)

А какой смысл было определять Print функцией?

a.Println.Sorted.Println