LINUX.ORG.RU

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


0

4

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

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

★★

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

вот иди почитай свою библию SICP, там рассказано, что такое «синтаксический сахар». Вот for и есть - сахар.

Вот хвостовая рекурсия в ФП - это и есть сахар.

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

Я три раза перечитал, протер глаза и все же это вижу.

Сахар - это расширение синтаксиса. TCO не является таковым.

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

for в сишке тоже не является, но у товарища свои собственные определения. работаем в их рамках.

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

Обойдись без for

Так же, как обойдусь и без рекурсии - if и goto.

Что вовсе не значит, что аргумент этого идиота имеет хоть какой-то смысл. Что вызов функции, что goto - одинаково низкоуровневые понятия в железе. Часто (например в ARM) это вообще одно и то же.

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

for в сишке тоже не является

for идеально вписывается в определение синтаксического сахара.

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

Обойдись без for.

в сишечке? да без проблем! можно даже и без do/while, просто функциями.

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

for в сишке тоже не является

в каком месте сишечке тебе так уж необходим for? Это типичный сахар, и с лёгкостью меняется на другие конструкции (if/goto, do/while, ФП). В принципе, ничего не мешает использовать только if/goto (кроме неиллюзорных пиз*й от того, кто этот код будет поддерживать)

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

Что вовсе не значит, что аргумент этого идиота имеет хоть какой-то смысл. Что вызов функции, что goto - одинаково низкоуровневые понятия в железе.

не совсем так. call из x86 это такой «железный сахар» над операциями со стеком и с jmp.

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

Нет в x86 никаких «операций со стеком». Ты опять за свой тупизм взялся, недоучка. Адресация относительно ESP ничем внутренне не отличается от адресации со сдвигом от любого другого регистра.

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