LINUX.ORG.RU

Возврат значения из замыкания


0

4

Как вы считаете, если противопоставить, какое _и почему_ в абстрактном ЯП поведение оператора return внутри замыкания более правильное/оправданное: когда return только возвращает управление из замыкания или когда return вызванный внутри замыкания приводит ещё и к возврату из контекста, откуда было вызвано замыкание?

p.s. В качестве примера второго поведения - return из Proc в Ruby.

★★

Последнее исправление: maxcom (всего исправлений: 1)
Ответ на: комментарий от geekless

Использование конструкторов, деструкторов, перегруженных операций и механизма исключений

не используй.

drBatty ★★
()
Ответ на: комментарий от staseg

где код, в котором print НЕ зависает?

То есть ты уже согласен, что виснет всего лишь print? Ок, код лежит где-то в треде, ищи *print-circle*. Даже не будь этого решения, проблему ты надумал.

нет, не согласен.

drBatty ★★
()
Ответ на: комментарий от staseg

Я, честно, никогда не интересовался pure-fp, полагаю, что там вообще может не быть такого понятия как «цикл». А вот конкретно в CL, как и конкретно в Си, такое понятие есть и реализуется в обоих сдучаях в виде сахара над if и goto. Ты же тут хочешь разговаривать о конкретных языках, вот будь любезен конкретно про эти два конкретно и отвечать.

ну вот ты и отвечай конкретно про goto, который не сахар.

drBatty ★★
()
Ответ на: комментарий от drBatty

нет, не согласен.

Твои проблемы, бро. Учитывая, что у всех работает, они реально только твои.

ну вот ты и отвечай конкретно про goto, который не сахар.

Я за циклы уже все ответил. Будут аргументы - опровергай.

И почему твоя говносишечка падает, блеать?!! Мой говнолишпик на такой задаче просто зависает, а эта хрень падает! Беспонтовый язык. На самом деле очень плохой язык. Я думал, намного лучше будет.

staseg ★★★★★
()
Ответ на: комментарий от staseg

Ах, черт. Просто я все не читаю. Слишком много словесного мусора. Но тебя обычно читаю полностью :)

dave ★★★★★
()
Ответ на: комментарий от staseg

Твои проблемы, бро. Учитывая, что у всех работает, они реально только твои.

хм... я привёл вполне понятный код.... он только у меня не работает?

drBatty ★★
()
Ответ на: комментарий от dave

Ах, черт. Просто я все не читаю. Слишком много словесного мусора.

ну код-то запустишь?

drBatty ★★
()
Ответ на: комментарий от drBatty

сам-то понял что сказал? «сишка НЕ падает». Что не нормально?

Продолжать делать вид, что все нормально, когда память уже кончилась - это ненормально. Поэтому и надо делать memset всякий раз после malloc - чтоб с гарантией упасть сразу, если что не так.

psikh
()
Ответ на: комментарий от Reaper

Где ответ про зарплаты Java-гуру, где рассказ о твоих достижениях?

На «аргументы» из детского сада, уровня «сперва добейся» я вообще принципиально не отвечаю. Не видишь разницы, да? Я то очень конкретно и четко описал, почему JS это не говносхема. Эти аргументы легко проверяются. А какие бы цифры я тут не назвал, доказать это или опровергнуть никто не сможет. Все еще не видишь разницы в уровне аргументации?

psikh
()
Ответ на: комментарий от quasimoto

Ты выше говорил, что IDE не сможет в макросы, так как ей нужны их определения (в виде исходников), а они могут изменяться (в том числе сторонними лицами при горячем обновлении).

Плевать на сторонних лиц, сторонних жоп и прочие сторонние части тела. Я описал тривиальный случай - первой строкой проекта на много миллионов строк идет (defmacro LOOP ...).

Пользователь внес в эту строку изменение. В другом окне у него открыт исходник, отстоящий от первого на несколько миллионов строк. В нем используются макросы, в определении которых использовались функции, которые использовали макрос LOOP.

Для того, чтобы привести отображение этого исходника снова к адекватному виду, IDE неизбежно будет вынуждена снова перекомпилировать все несколько миллионов строк кода.

При этом может измениться даже последовательность и состав используемых в проекте исходников - мало ли, какой там макрос с использованием LOOP раскрывался в (begin (include ...) ...).

столько информации, сколько реализация (образ) может ей предоставить

А я тебе о чем говорю? Ты поменял первую строчку кода. Весь твой образ недействителен. Его надо пересобрать целиком. Нелья просто так взять и пройтись «по зависимостям» - в случае с макросами они неизвестны и отследить их невозможно. Иначе на каждый участок кода, полученный раскрытием макроса, пришлось бы запоминать зависимость от этого макроса и от всех функций и макросов, использовавшихся в определении макроса. Ни один из существующих говнолиспов этого не умеет, да и я сомневаюсь, что это технически возможно.

Ты не сказал слово «Java» - статически типизированный язык. Таки претензии к динамике?

К динамике у меня вагон претензий, но в данной теме это несущественно.

psikh
()
Ответ на: комментарий от anonymous

Ему уже даже привели пример ИДЕ, которая это делает.

У кого-то опять белая горячка. То несуществующие (и якобы «выпиленные» масонами) бенчмарки с шутаута, то несуществующий пример несуществующей IDE, которая делает невозможное. Смешно!

psikh
()
Ответ на: комментарий от quasimoto

Учитывая, что в CL можно придумывать десятки способов определения функций, макросов и методов, начиная от setf и defun/defmacro/defmethod и вплоть до defclass из CLOS, defimplementation из quicklisp и многочисленных макросов SBCL подобного толка, то такая IDE должна будет реализовать приличный кусок CL (экспандер и таблицу символов как минимум).

Начинаешь понимать. Теперь пойми и то, что зависимости в CL (да и практически любом другом говнолиспе) отследить невозможно, и этот самый приличный кусок CL (уж лучше тогда сам CL) будет обязан непрерывно перекомпилировать ВСЁ, начиная от измененной строки кода.

psikh
()
Ответ на: комментарий от drBatty

где код, в котором print НЕ зависает?

Прикинь, тебе дали такой код. А где код на сишке, в котором print не зависает?

anonymous
()
Ответ на: комментарий от drBatty

Погоди, это же ты сказал, что на сишке все работает. Ты код и приводи.

anonymous
()
Ответ на: комментарий от drBatty

ну давай спорить: я беру сишечку, ты?

Хорошо, давай. Racket. Показывай давай где там разброд, шатание и отсутствие стандарта.

anonymous
()
Ответ на: комментарий от drBatty

Я не вижу в этом коде ответа на мой вопрос. повторюсь - что значит «равно»? Или ты используешь термины, значения которых сам не знаешь?

anonymous
()
Ответ на: комментарий от drBatty

сам-то понял что сказал? «сишка НЕ падает». Что не нормально?

ненормально то, что программа, по твоим словам, не падает, когда у нее не хватает памяти. То есть она использует памяти больше чем есть. она берет память из астрала? Не верю. Приводи мне пруфы, как программа на си берет память из астрала. Или не пизди.

у тебя хотел спросить?

А я при чем? Это же ты сказал. Откуда я знаю, что ты имел ввиду?

anonymous
()
Ответ на: комментарий от drBatty

я свой привёл.

ссылку? мой код смотри у quasimoto

anonymous
()
Ответ на: комментарий от drBatty

У меня x86. У меня десктоп, в котором процессор, от Intel.

Я не спрашивал какой у тебя ЦПУ. Я спросил: " for сишки что за говно и под каким CPU выполнять?"

anonymous
()
Ответ на: комментарий от drBatty

дык ты мне можешь рассказать, где у тебя «программная сущность», а где «конкретное значение»?

«программная сущность» и «конкретное значение» - одно и то же. Так что не «а где».

anonymous
()

В треде отметились: схемофаз, джавадебил, общеблядь, сишкодрочер. И все срутся со всеми! Это замечательно, ящитаю.

anonymous
()
Ответ на: комментарий от psikh

Для того, чтобы привести отображение этого исходника снова к адекватному виду, IDE неизбежно будет вынуждена снова перекомпилировать все несколько миллионов строк кода.

Прикинь, джава будет вынуждена сделать точно то же самое - тайпчекнуть весь зависимый код. И делает. И никаких проблем.

anonymous
()
Ответ на: комментарий от psikh

то несуществующий пример несуществующей IDE, которая делает невозможное.

Скачай Dr.Racket и включи online expansion, ебланоид.

anonymous
()
Ответ на: комментарий от anonymous

Прикинь, джава будет вынуждена сделать точно то же самое - тайпчекнуть весь зависимый код. И делает. И никаких проблем.

Для джавы зависимости очевидны. Для говнолиспа принципиально неотслеживаемы, и потому надо перекомпилировать ВЕСЬ код.

psikh
()
Ответ на: комментарий от anonymous

Скачай Dr.Racket и включи online expansion, ебланоид.

Даже не смешно. Это говно годится только для хеллоуолдов. На проекте в миллионы строк кода он сдохнет, и никакая говносхемчатая раздельная компиляция тут не поможет.

psikh
()
Ответ на: комментарий от psikh

Для говнолиспа принципиально неотслеживаемы, и потому надо перекомпилировать ВЕСЬ код.

Это ты так думаешь.

anonymous
()
Ответ на: комментарий от psikh

Как обычно, в ответ на пруф «я в домике, кукареку». Ничего что codebase у racket как раз миллионы строк кода?

anonymous
()
Ответ на: комментарий от psikh

Да-да-да, и писались они все в drracket.

Прикинь, да, подавляющее большинство мейнтейнеров racket используют Dr.Racket.

anonymous
()
Ответ на: комментарий от imtw

Ну построй мне бесконечный (не циклический, а именно бесконечный) список в сишке.

но я же про циклический список говорил? В вашем говнолиспе нельзя делать циклических списков? Почему?

drBatty ★★
()
Ответ на: комментарий от psikh

Продолжать делать вид, что все нормально, когда память уже кончилась - это ненормально. Поэтому и надо делать memset всякий раз после malloc - чтоб с гарантией упасть сразу, если что не так.

вот и я говорю, что таких как ты надо гнать вон из профессии.

drBatty ★★
()
Ответ на: комментарий от psikh

Эти аргументы легко проверяются. А какие бы цифры я тут не назвал, доказать это или опровергнуть никто не сможет.

проблема в том, что ты НИЧЕГО не назвал.

drBatty ★★
()
Ответ на: комментарий от anonymous

Я не вижу в этом коде ответа на мой вопрос. повторюсь - что значит «равно»? Или ты используешь термины, значения которых сам не знаешь?

ну открой глазки и посмотри на код.

drBatty ★★
()
Ответ на: комментарий от anonymous

ненормально то, что программа, по твоим словам, не падает, когда у нее не хватает памяти. То есть она использует памяти больше чем есть. она берет память из астрала?

нормально, что программа НЕ падает, когда у неё хватает памяти.

drBatty ★★
()
Ответ на: комментарий от anonymous

У меня x86. У меня десктоп, в котором процессор, от Intel.

Я не спрашивал какой у тебя ЦПУ. Я спросил: " for сишки что за говно и под каким CPU выполнять?"

вот под моим x86 и выполняй. вот конкретнее:

processor	: 0
vendor_id	: GenuineIntel
cpu family	: 15
model		: 4
model name	: Intel(R) Pentium(R) 4 CPU 3.20GHz
stepping	: 3
microcode	: 0x5
cpu MHz		: 3199.530
cache size	: 2048 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 1
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 5
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc pebs bts nopl pni dtes64 monitor ds_cpl est cid cx16 xtpr
bogomips	: 6399.06
clflush size	: 64
cache_alignment	: 128
address sizes	: 36 bits physical, 48 bits virtual
power management:
drBatty ★★
()
Ответ на: комментарий от anonymous

дык ты мне можешь рассказать, где у тебя «программная сущность», а где «конкретное значение»?

«программная сущность» и «конкретное значение» - одно и то же. Так что не «а где».

ты заблуждаешься. В выражении a+b+c попросту нет никакого значения a+b.

drBatty ★★
()
Ответ на: комментарий от drBatty

вот под моим x86 и выполняй.

не нашел для ассемблера твоего ЦПУ команды «for». Как же ее выполнить?

anonymous
()
Ответ на: комментарий от drBatty

Идиот. Абсолютно непрошибаемый идиот. И ведь ему даже не стыдно, вот что забавно!

Иди, идиот, почитай, что такое выражение, и почему у выражения всегда есть значение.

psikh
()
Ответ на: комментарий от drBatty

твой говнолисп и виснет. потому-что говно.

Так он не виснет.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.