24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Харкаю в ебло чмошным программистам, какого хуя вы собаки не правильно трактуете return еще и учите этому других? Вы свинособаки не сумевшие перевести с человеческого языка на свое пидарашье хрюканье значение return, это не возвращение а ВЫЧИСЛЕНИЕ
>>212733017 (OP) Ты ебанулся. Return это возврат, сам синтаксис предусматривает, что операнд return возвращает вообще любое значение, хоть результат вычисления, хоть твою мамку, хоть аллаха.
>>212733017 (OP) Да ты просто тупое мудло, описания функций до конца не читающий. Обоссали тебя свей командой. Мимо тимлид с командой, из ДС, в отличие от ОПа-хуя, умеющих в программирование.
>>212733017 (OP) Знаю одного чувака, он не знал английского, но работал веб-макакой. "return" он на зывал "ретурном", а функции - "функтионами". Тру стори.
>>212733498 ДА ОП просто зеленый-жирный, мы в курсе, да. У нынешней школоты и ПТУшников (НЕ ПТУ А КОЛЛЕДЖ) троллинг тупизной элитный уровнем считается, не все могут, не все умеют - уважение плюс. )
Я не до конца понял в чем претензия ОПа, но смею предположить, что ему печет от того, что написано, дескать, функция возвращает несколько значений, а на деле же там только одно. Ну что сказать, да, abuse of notation. Но на деле не похуй ли? Все равно между функциями, возвращающими несколько значений, и функциями, возвращающими кортеж из них же, можно построить взаимооднозначное соответствие.
>>212735930 Очевидно, что оригинальную пикчу делал C#-фанбой. Только конченный долбоеб может поставить его вместе с C++, а не Java. По питону претензий не имею, хоть его и люблю.
>>212737083 А на чем еще машобчик ресерчить прикажете? Есть R, конечно, но вопросов к нему сильно больше. А в остальное контент^W инфраструктуру не завезли.
>>212733017 (OP) Тред не читал. Именно что возвращение. Если ты немного познакомишься с ассемблером любой архитектуры ты узаешь о способе вызовов подрограмм (субрутин). Методы/функции/процедуры - для процессора это всё субрутины. Вызов субрутины происходит с помощью инструкции JSR (Jump to Subroutine), к примеру, эта инструкция выполняет пуш регистра PC (на разных архитектурах название разное) в системный стек, чтобы процессор понимал, куда ему ВЕРНУТЬСЯ после выполения субрутины. Сама субрутина выполняется до инструкции RTS (Return from subroutine), эта инструкция попит (pop) из системного стека адрес вызова и прибавляет к нему оперделённое число для перехода к следующей инструкции. Так что для процессора, это именно ВОЗВРАЩЕНИЕ из подпрограммы.
>>212740199 Какой ответ ты хочешь? С точи зрения твоего процессора - это имеено возврат к следующей инструкции после точки вызова. Что тебя ещё беспокоит?
>>212740326 Перечитай моё предудущее сообщение >>212739074 Основная суть в том, что процессор должен ВЕРНУТЬСЯ к месту откуда он начал выполнять подпрограмму. В твоей подрограмме может вообще не быть вычислений dumbloop: JSR shit BRA dumbloop
shit: NOPE RTS
Понимаешь? Процессор вызывает субрутину shit которя ничего не делает - nop - цикл простоя, потом выполняет RTS, что есть ВОЗВРАТ БЛЯТЬ, RTS забирает адрес dubloop (адрес вызова) и прибаляет к нему длинну инструкции JSR, чтобы выполнить следующую иснтрукцию BRA dubmloop. И всё повторяется кругами. Как ещё понятней обяснить? Shit ничего не считает, но при этом чтобы в нём не застрять нужно ВЕРНУТСЯ
>>212733017 (OP) Я не знаю, как дела обстоят в пиздоне, но полагаю, ты крепко ебнутый.
if (condition) return;
- внезапно возврат "нихуя". Именно возврат к адресу инструкции, котый сохранен в регистре или стеке. Это не противоречит тому факту, что выражение return может содержать вычисление или вызов другой функции. Пошёл нахуй крч
Какой же оп упёртый. Не нравится, как return реализован в существующих языках - напиши свой, вдруг на самом деле найдётся много симпатизирующих идее людей.
Боже, ну и идиот, я думал в програмистах только умные.
Ты про какой-то ассемблер пишешь в микроконтроллеры. А ОП спрашивает про питон, у которого своя вирутальная машина без всяких возвратов и ассемблера. Учи матчасть
>>212743503 >Ты про какой-то ассемблер пишешь в микроконтроллеры. Маня, ассемблер - это а) язык ассемблера - по сути машинные инструкции записанные мнемониками. б) Вид программы транслятора, которая превращает мнемоники в машинные инструкии. Т.е. эти машинные инструкции выполняет любой процессор, а не только микроконтроллреры (что по сути своей процессор, с памятью, клеевой логикой и i/o) > А ОП спрашивает про питон, у которого своя вирутальная машина без всяких возвратов и ассемблера. И? Что ты искренне пытаешься педалировать? Код интерпертируемых языков компилируется в байт-код, накбор инструкции, для виртуальной машины. По сути своей, это как набор машинных иструкции, но только не для твоего процессора, а для виртуальной машины. Он работает схожим образоим. В конечном итоге, интерпритатор питона (его виртуальная машина) - скомпилированная программа, которая крутится на твоём реальном, проце и работает так как я тебе это описал. Что ты пытаешься доказать? Что нахуй ВОЗВРАЩАТЬСЯ ИЗ ПОДПРОГРАММЫ? Что смысл в том чтобы выполнить интрукции и остаться в подпрограмме?
>>212733452 Пидарахи все равно смешно вещи называют. а-бэ-цэ вмсто эй-би-си (названия терминалов в международном аэропорту, блеать, я охуевал), у-эс-бэ вместо ю-эс-би, и т.д.
>>212745355 Стек на уровне машинного кода — точно такая же абстракция, там тупо значения регистров меняются и все. На самом деле нет никаких вызовов, возвратов ты obosralsya.
>>212747797 Вот хули ты тупой такой, думаешь, кто-то не знает, что такое None? Это особенности реализации Питона и всем похуй, суть в том, что такое возвращение значения из функции, речь об этом. Рекурсивная функция должна возвращать вычисляемое значение или нет? Функция рекурсивная или нет? Задумайся об этом.
>>212747338 Если литера латинская, то она так и читается. ABC - а, бэ, цэ и так далее. А у терминалов как раз латинские литеры. Так что единственная тут неграмотная пидораха это ты
>>212748464 Шизик, я прекрасно знаю, как читаются латинские литеры. Суть в том, что пидорахинские секретутки в международном аэропорту, произносящие литеры на латыни (ты думаешь, что они вообще знают, что такое латынь, шизик?) лишь путают иностранцев. Латинские литеры у него, вообще охуеть. В загранпаспорт загляни, дебилоид, и задай себе вопрос, хуле там по-английски написано, а не по-французски, например?
>>212749829 ASM, немного ебанутая библиотека, там все через visitor pattern и функции на тыщи строк (охуеть, когда баг находишь, да), но работает неплохо и много где используется, даже в самом JDK вроде.
>>212747626 Стек на уровне машинны - это область память в ОЗУ, а значение регистра - это указатель на верхушку этого самого стека (адрес следующей свободной ячейки памяти). Когда ты вызываешь субрутину, адрес места вызова (enty point) пушится в стек (читай в ОЗУ по адресу указанному в регистре, который содержит верхушку стека), и значение регистра содержащего верхушку инкрементруется. Когда ты возвращаешься из подпрограммы, проц достаёт адрес места вызова из ОЗУ (на него какраз и указывает верхушка стека), и помещает его в регистр счётчика команд. После этого регистр счётчика инкрементируется на длинну инструкции вызова, чтобы выполнить не адрес вызова снова, а инструкцию после него. Учи мемы ассемблер чтобы не быть баттхёртом )
>>212750018 Ну и? Что нового ты сказал? По факту call/ret/iret транслируются в микрокод, который знать не знает про понятие стека. Загляни в интеловский референс на команды, там будет примитивный псевдокод для каждой, угадай, с чего он там есть, вообще (а потому что это микрокод, практически).
>>212750018 Приведу пример, архитектуры с корой я знаком. Пусть у тебя есть адресный регистр An, и Dn - РОН (регистр общего назначения). В адресный регистр An ты суёшь адрес 0xF000, теперь это верхушка стека. Твой код выполняется с my_code: JSR my_soubr NOP
my_code - точка входа в выполняемую программу, my_soubr - точка входа в твою подпрограмму. Когда машина выполняет переход в my_soubr, она пушит физический адрес инструкции my_soubr, по которому эта инструкция лежит в озу, в cтек, т.е - она помещает физический адерс my_soubr в адрес 0xF000, и декрементит верхушку стека, т.е. вычтиает 2 байта из числа находящегося в An - 0xEFFD - теперь следующее свободное место в озу тут. Дальше управление передаётся в my_soubr:
MOVE #5, Dn RTS Твоя субрутина, скажем для примера, просто помещает число 5 в регистр РОН, и неделает больше ничего. Следующим шагом будет именно возврат. Выполняя RTS машина инкрементирует An, и получит 0xF000 - адрес ОЗУ из которого прочтётся физический адрес my_code, твоей точки входа. Но если оставить всё так, то машина будет бесконечно вызвывать my_soubr, поэтому машина иркементрует реигстр счётчика команда на длинну инструкции JSR my_soubr, в нашему случает это 4 байта - 2 байта сама инструкция JSR, и 2 байта физический адрес my_soubr, таким образом регистр счётчика команд получает валиндный адрес инструкции NOP и продолжает выполнение
>>212750567 Стек на уровне машинного кода не тянет на структуру данных. Там нет защиты от переполнения / underflow, например, нельзя узнать кол-во элементов, top запросто прыгает туда-сюда (еще red zone на x86_64 вспомним). Хуйня, а не структура данных, кароч.
>>212750822 Я знаю дохуя языков, и стараюсь использовать их согласно парадигмам каждого, что такого? Период языкосрачей я давно оставил позади, использую их, как инструменты. Могу и свой DSL легко придумать и реализовать, только нахуя? Выбора достаточно из имеющихся.
Return всего лишь передает управления обратно управляющей функции. ВСЕ. Никаких возвратов значений и вычислений эта инструкция не выполняет. Учите, блять, ассемблер.
>>212751334 Ок, тогда давай вообще на уровен машинного кода забудем про любые структуры данных) Будем говорить что всё инструкции по сути реализуются через микрокод, что вычитание это на самом деле сложение two's complement числа и т.д. Но как это влияет на заялвление ОПа о том, что суть оператора return - это, якобы, ВЫЧИСЛЕНИЕ.
Я аппелировал к ассемблеру, чтобы опу было проще понять, что return'ы в языка, это именно возврат, и не обязательно возврат значения, а именно возврат из субрутины. чем бы она не была фунцкией/процедурой или методом.
Вы совсем тупые что ли? 53 анона 114 постов вы ебанутые такой жир обсуждать? Дальше в треде умственно отсталые еще пытаются жирным что то объяснять Просто пиздец
>>212753466 С типизацией все хорошо. Области видимости глобальная в пределах модуля и внутри класса/функции. Простые типы передаются по значению, сложные по ссылке.