Я там писал по поводу двух вариантов суммирования 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
Метод расширения, естественно, имеется и у списков. Но если список распечатать, то он превращается в последовательность:
var sq:= Range(1,100);
var l1:= new List(sq); var l2:= l1.Println;
Логики не вижу, ну и ладно.