Catcher
18.Январь.2022 13:21:49
#1842
То есть pabc ненормальный паскаль?
Админ говорил, кажется, что он вообще не паскаль. Но во всяком случае, он не поддерживает полного спектра возможностей полноценного паскаля, описанного Виртом и дальнейшими спецификациями и из этого вроде никто тайны не делает.
На сколько Вы планируете сократить код, убрав var
в описании цикла?
Пусть и не намного, но ведь ведь как правило с сокращением кода улучшается ещё и его читаемость.
ProMix
18.Январь.2022 14:55:01
#1843
В это время объявление переменных в километре от места их использования
Admin
18.Январь.2022 16:23:28
#1844
Catcher:
Но что если в программе встречается несколько циклов for, например несколько проходов одного и того же массива. Разве не будет разумнее описать переменную-счётчик всё таки вне цикла? Например var i: integer;
или как-то так и использовать одну и ту же переменную для всех циклов, где нужен счётчик, если они не вложенные.
Компилятор выделит для всех этих переменных одну ячейку памяти.
Это как “давайте использовать одну зубную щётку на всех - так эффективнее будет”
1 лайк
Вообще я тоже думал что JIT достаточно умный, но так используются 2 разные ячейки:
##
for var i := 1 to 10 do
if i=1 then Writeln(@i);
for var i := 1 to 10 do
if i=1 then Writeln(@i);
Readln;
Возможно это из за указателей…
Во всяком случае, экономия памяти на стеке это сумашествие.
Admin
18.Январь.2022 17:31:38
#1846
Это не JIT такой умный. Любой компилятор считает размер записи активации во время компиляции.
Catcher
19.Январь.2022 01:11:07
#1848
Тогда тем более странно их описывать отдельно.
А если обойтись без сломанных аналогий?
samurai
19.Январь.2022 04:42:48
#1849
На сколько Вы планируете улучшить читаемость, убрав var
в описании цикла?..
samurai
19.Январь.2022 04:47:11
#1850
есть конкретные примеры, где понятно, что из-за этого незакрыта какая-то сфера деятельности или замена .net функционалом является более плохим решением?
Catcher
19.Январь.2022 06:15:19
#1851
На сколько Вы планируете улучшить читаемость, убрав var
в описании цикла?..
На 0.68% на каждую переменную в блоке var
на положенном месте (перед begin
).
есть конкретные примеры, где понятно, что из-за этого незакрыта какая-то сфера деятельности
Указатели. Совместимость с существующим кодом для Free Pascal и Turbo Pascal.
замена .net функционалом является более плохим решением?
Более низкая производительность по сравнению с нативным кодом и что более важно, лишняя зависимость от mono, которую нужно отдельно устанавливать.
И даже с mono совместимость с UNIX-подобными ОС не полная.
ProMix
19.Январь.2022 06:23:53
#1852
Так, а зачем они вам в наше время?..
Закройте форум и идите учить плюсы. Больше никак положение не исправить
1 лайк
samurai
21.Январь.2022 15:09:06
#1853
Помнится, где то про указатели с вами уже говорили…
Зачем вы рассказываете про минусы .net в целом? Я ведь совершенно о другом спросил!
samurai
25.Январь.2022 14:51:15
#1854
как должен быть записан данный код, что бы ничего не вызывало ошибки?
##
var fruits:= new system.Collections.ArrayList;
fruits.Add('mango');
fruits.Add('apple');
fruits.Add('lemon');
var query: IEnumerable<string>:= fruits.Cast<string>().OrderBy(fruit -> fruit).Select(fruit -> fruit);
по сути это перевод Enumerable.Cast<TResult>(IEnumerable) Метод (System.Linq) | Microsoft Docs
но как не пытаюсь, всё равно получаю какие-то ошибки компиляции
Проблема явно в Cast
Проблема в том что идёт сразу после Cast
. У вас его считает оператором меньше, потому что ставьте &
для явного указания шаблона подпрограммы.
1 лайк
samurai
25.Январь.2022 15:32:01
#1856
действительно. извиняюсь, что сам это в справке не нашёл
RAlex
25.Январь.2022 16:35:17
#1857
А можно узнать, для чего такие кандибоберы, почему просто не написать
##
var fruits:= new List<string>;
fruits.Add('mango');
fruits.Add('apple');
fruits.Add('lemon');
var query := fruits.Order;
Print(query)
Вы, возможно, аргентинских шпионов запутать хотите?
1 лайк
samurai
25.Январь.2022 17:42:16
#1858
это просто пример. я не зря ссылку на доку по .net скинул. просто так нагляднее видна проблема перевода кода. естественно, что так писать нет смысла
RAlex
25.Январь.2022 21:19:01
#1859
samurai:
проблема перевода кода.
из чего и во что переводить? Я, может, неграмотный в этом предмете, потому что проблемы пока не ощущал ни разу.
samurai
26.Январь.2022 11:04:36
#1860
локальная(моя личная) проблема имеется ввиду
Valery
13.Март.2022 16:39:08
#1861
Смейся, паяц!
Структурное программирование : учебное пособие для вузов / С. П. Якимов. — Москва : Издательство Юрайт, 2022. — 342 с. — (Высшее образование). — ISBN 978-5-534-14885-5
Замечательная книга о паскале, которого нет.
Вперёд в прошлое!