Ошибки PascalABC.NET

var n := 1; var sq := n.Step…

И так же Downto, To, Range, Times.

Я спрашивал про методы расширения типа integer.

ArrRandom, SeqRandom - это методы для генерации динамических массивов, а Range - последовательностей. К ним у меня вопросов нет. Здесь всё логично.

Возможно разработчик вкладывал в это какой-то дополнительный, сакральный смысл, но я для себя сделал сделал следующие выводы:

   Range(i,j) и i.To(j) эквивалентны. 
   Также, эквивалентны Range(j,i,-1) и i.DownTo(j), хотя запись 5.DownTo(10) - 
это странно, было бы естественнее 10.DownTo(5) и тут Range(10,5,-1) лучше.
   Range не умеет порождать бесконечных последовательностей,
поэтому Step нужен однозначно.
   n.Times эквивалентно Range(0,n-1) и просто изящнее выглядит.
Удобно для порождения индексов динамического массива.размера n.

Downto выглядит неестественно, потому что работает неправильно. Я об этом писал. Надеюсь, исправят. Там работы на 10 секунд. Всё остальное верно. Метод Step можно было бы сделать отдельно от типа integer - как Range. Тогда все методы, порождающие последовательности, были бы в одной куче.

Сакрального смысла я пока не понял. Может быть, эти методы расширения как-то используются в лямбдах или ещё где-нибудь. Пока не нашёл им разумного применения.

Это уже работает

Вроде сейчас работает - проверьте

Да, работает

Работает, спасибо.

Исправили. Оказывается, стандартный / для BigInteger возвращал целое.

1 лайк

Errare humanum est! )))

Теперь работает. Исправили.

1 лайк

Исправили. Увы - теперь здесь надо передавать функцию сравнения, возвращающую integer:

Sort(a,(x,y)-> x-y);

Исправили. 15 секунд. Теперь - так: 5.Downto(1).Println

Да, спасибо, поставил, работает. Интересно будет потом посмотреть на GitHub что это было.

Ошибка. Не в том порядке параметры записали :slight_smile:

Может, это в истории c downto параметры не в том порядке? Я уже про другое написал, это тоже только что исправили, там же вроде случай не такой простой:

Ничего не понял в последнем посте.

Напишите, что не так

Нет, всё так, работает нормально, просто я хотел понять, что произошло. Сейчас в GitHub уже всё появилось - это #317.

Три последние версии - работа над ошибками, нет смысла там что-то “свеженькое” искать? ))

Вот поэтому я и хотел понять эту конкретную проблему, пока всё не затерялось в исправлениях. Сам когда-то на что-то похожее споткнулся (или мне это только показалось) вот и заинтересовался.

В DownTo надо было нелогично указывать параметры. DownTo - это декремент, поэтому очевидно, что указываем начальное значение, затем DownTo, что указывает нисходящую последовательность и конечное значение. Как в операторе цикла for 10 downto 5 do. Сейчас исправили, и можно писать аналогично: 10.DownTo(5)