Болталка PascalABC.NET

Ну, рекурсивный вызов и лямбды, как по мне, ни разу не пример кода “похлеще”.

Вы нарочно “Ваньку валяете”? Ясно ведь и ежику, что Вы специально ввели переменную, одноименную с функцией, чтобы потом задавать вопрос. Вот это я как раз и имел в виду под “злобным Буратино”. Когда чтобы на своем настоять, человек готов делать любые, противоречащие здравому смыслу вещи. А чтобы подобные вещи не случались в действительности, “сверху предписали” использовать в функциях не имя, а переменную Result. Но Вам же надо извратиться…

– Ясно, – произнес Демиург. – Можете идти. Сергей Корнеевич, проводите. Я встал. Колпаков все еще сидел. Красные пятна разгорались у него на щеках. Он разлепил было губы, но Демиург сейчас же сказал, повысив голос: – Проводить! Пальто не подавать! (А. и Б. Стругацкие. “Отягощенные злом”)

Сверху предписали? Т.е. отошли от стандарта и совместимости? Что-то я не понимаю… Что, значит, совместимость использования имени функции в качестве переменной не нужна, а совместимость с пустыми скобками - обязательна? Крым и Косово, Крым и Косово, Крым и Косово… Двойные стандарты, товарисч!

P.S. И я ее не вводил. Этот рудимент присутствует по умолчанию.

function expr:integer;
begin
	Result:=1;
	writeln(Result) //тут вывод единицы
end;

Все, проблема снята. Но вместо этого Вы заявляете: "А я так не хочу! Потому что можно по-другому и вот тогда!.." Ну и зачем? Если Вам хочется стрелять себе в ногу - Ваше право, стреляйте. Путь, как без этого обойтись, был указан. Мазохисты и тролли всегда найдутся, но надо ли на них равняться?

function expr:integer;
begin
    expr:=1; // тут результат выполнения функции 1
    writeln(expr) // а тут бесконечная рекурсия при вызове expr
end;

И что? Все нормально работает… А вот Ваша версия Windows меня удивила (4.6.1590.0)…

А у меня не работает :frowning:

Я такую конструкцию впервые в жизни вижу. Не требовалось пока играть в такие игры…

Не пойму, что у Вас за система стоит? 4.6.1590 - у меня нет такой информации. 4.1 - это была Windows 98-SE, 4.90 - Windows ME, 5.0 - Windows 2000, 5.1 - Windows XP… Подозреваю, кривизна именно тут - система + .NET 4.0

Windows 8.1

Так для восьмерки ставят .NET 4.5 вроде… пробовали обновить?

Тогда осталось Вам уповать на разработчиков. Шлите им то, что они просят… Я поставил виртуальную машину с Win XP - и все превосходно работает даже на ней.

А где же их найти?

Admin - он и есть один из главных разработчиков ))) А может, и самый главный…

Понятно, спасибо)

лол это в 1 из полследних обнавлений добавили ошибку? и зачем спрашивается? это не такая уж редкость такой код

Не обижайтесь, разработчики - они всегда народ эмоциональный, стоят за свои идеи насмерть))) Но что-то все же протащить удается))))) Эти, слава богу, вменяемы.

Поделитесь секретом: как Вам удалось набрать arr( чтобы при этом не выскочил подсказ по ней?

Иногда, если печатать быстро, она не успевает высветиться. Или если сначала закрывающую скобку поставить, потом открывающую=))

Да. Прямо как в старом анекдоте: переведите меня в другой гостиничный номер: из этого видна женская душевая. Пришел администратор, смотрит - ничего не видно. А постоялец ему: Вы на шкаф залезьте… тот полез, упал… - Вот и я так мучаюсь ежедневно!