LINUX.ORG.RU

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


0

4

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

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

★★

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

В CL, как и в сишечке циклы - это сахар над if и goto.

про сишечку ты таки заблуждаешься.

У меня каждый байт в ОЗУ имеет свой адрес, мне их тоже всех переименовать?

у тебя КАЖДЫЙ байт имеет СВОЁ назначение? Тогда да.

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

С чего вдруг? Если программа занимает памяти больше чем есть - то она падает. Или сишка берет память из атсрала

не. твой GC берёт память из атсрала.

Я же говорю - это проблемы ОС, которая неэффективно работает с памятью.

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

Не знаю. Ну вот андроид, например.

у друга с вендой есть андроед. Не смеши меня. Там всё ещё печальнее.

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

Не знаю. Ну вот андроид, например.

А также Inferno, например.

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

про сишечку ты таки заблуждаешься.

Таки нет. Если только ты в добавок ко всему еще не путаешь сахар с макрами.

у тебя КАЖДЫЙ байт имеет СВОЁ назначение? Тогда да.

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

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

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

никто так и не смог объяснить зависания интерпретатора...

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

Когда разговариваешь с кем-то, кто знает больше тебя - молчи в тряпочку и с благодарностью лови каждое слово.

они знают, что Император Александр II это наследник Александра I? Обосраться и не жить. Я этого не знал. Они знают больше.

Ну и что?

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

Ты же большой мальчик, напиши сам любую бесконечно рекурсивную функцию.

ну я написал - результат отрицательный.

У всех значит работает, а ты один такой уникум?

ТЫ кода не предоставил. А я предоставил.

Потому что ты дурачок, вот у тебя проблемы рандомно то возникают, то нет. (1)Сможешь написать структуру данных список? (2)Сможешь написать функцию, распечатывающую такой список в строку? Как только это сделаешь, замыкай хвост списка на голову и вызывай на нем функцию распечатывания(3).

1. да

2. да

3. УМВР.

Используемый мною диалект говнолиспа не нуждается в моей защите.

не хочешь ссорится с остальными задротами говнолиспа?

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

Таки нет. Если только ты в добавок ко всему еще не путаешь сахар с макрами.

может ты тёплое со сладким путаешь?

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

ну хорошо, чему равно x?

Возьми уже, наконец, учебник. Мне нравится английская версия ANSI Common Lisp за авторством Пола Грэма (by Paul Graham). Недавно вышел русский перевод.

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

В таком случае надо просто сказать: «спасибо, мне ваша функциональщина не интересна: я уже состоявшийся быдлокодер», а не нести шизотерический бред с чувством превосходства.

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

ну я написал - результат отрицательный.

Отрицательный чему? Внезапно:

int main(int argc,char **argv){
 return main(argc,argv);}

gcc rec.c -o rec && ./rec
Segmentation fault

ТЫ кода не предоставил. А я предоставил.

Тебе другие предоставили и несколько раз объяснили: присваивание setf не зависает. Зависает print.

3. УМВР

Ну чо, показывай. Мы все в предвкушении.

не хочешь ссорится с остальными задротами говнолиспа?

Полтора анона-задрота говнолиспа мне погоды не сделают. Выше я писал, что использую CL. И при этом я его не защищаю.

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

может ты тёплое со сладким путаешь?

Едва ли. Я отлично понимаю, что цикл строится на комбинации if и goto, и не имеет значения, реализуется это специальной языковой конструкцией for/do/while как в си или макросом do/loop/dotimes/dolist/iter как в CL.

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

Просто вывести бесконечное число десяток - нет. Вывести бесконечный список из десяток - тоже не виснет, а быстренько крашится.

Список обычно циклом выводят, а не рекурсией. Именно чтоб не крашилось на больших списках.

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

Речь про бесконечный список шла. Чтобы этот список как-то вывести, его сначала нужно создать. Сишка не может в ленивость, тут-то всё и рухнет :}

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

ну я и говорю - не умеешь вести дискуссию

О какой дискуссии речь?

ЧСХ - правильно.

Так ведь неправильно сдетектировал.

Вместо ответа на вопрос

Я тебе ответил на все твои вопросы.

а я с этим-то и не спорил...

Спорил, конечно.

нет там никакого «алголоподобного»

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

Ты можешь со мной спорить в контексте Си.

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

Твои слова изначально - пустой трёп.

Равно как и твои.

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

ты дурак? КАК я твои мессаги отфильтрую от мессаг других анонов?

Когда видишь анонимуса, который пишет о Racket - можешь смело считать мной.

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

что это за говно, и под каким CPU мне это говно выполнять?

А for сишки что за говно и под каким CPU выполнять?

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

Речь про бесконечный список шла. Чтобы этот список как-то вывести, его сначала нужно создать. Сишка не может в ленивость, тут-то всё и рухнет :}

Замкни голову списка на саму себя, вот, считай, и бесконечный список без гигабайт ОЗУ и ленивости.

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

Или расскажи мне, какой адрес у a+b?

Это не программная сущность, это терм, безграмотная ты ебанашка. Программная сущность - это конкретная значение, которое хранится в ОП или регистре процессора.

а кто тебе сказал, что это функция?

Стандарт ЯП.

потому-что без имени.

Это хорошо.

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

не. твой GC берёт память из атсрала.

Нет, нет, погоди, это ведь сишка у тебя не падает, когда памяти не хватает. У моего ГЦ с этим все нормально.

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

Что запустишь?

Вот только результат немного предсказуем..

И какой результат? И результат чего, что более важно?

у друга с вендой есть андроед. Не смеши меня. Там всё ещё печальнее.

Что печальнее?

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

Это скорее циклический, а не бесконечный. Бесконечный - это как-то так:

Prelude> let a = [1..] -- Бесконечный список, без дураков
Prelude> let b = map (+1) a -- С ним можно делать что угодно
Prelude> take 5 b -- Никакого мошенничества
[2,3,4,5,6]

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

никто так и не смог объяснить зависания интерпретатора...

А ты в сишке запусти тот же код и объясни, почему он виснет. Вот то же самое объяснение.

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

Или расскажи мне, какой адрес у a+b?

Идиот. Абсолютно невменяемый идиот!

Это адрес инструкции add в памяти, идиот!

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

Это скорее циклический, а не бесконечный.

Ну пусть циклический, drBatty именно в него тыкает пальцем и удивляется, почему не работает.

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

нет

Пруфы можно? У меня почему-то упорно виснет. какой ты компилятор используешь? Или, может, я недостаточно ждал? Надо подождать несколько часов?

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

Недостатки у Лиспа не технические - скобчатый синтаксис, который отпугивает широкие массы, и разной степени йопнутости фанаты, которые отпугивают массы поуже.

Скобчатый синтаксис как раз технический недостаток.

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

> Гораздо хуже наличие макросов, динамическая типизация без уток, ну и говносинтаксис.

Макросы, динамическая типизация и гомоиконный синтаксис - это достоинства, а не недостатки.

Нелепая попытка подмены говносинтаксиса гомоиконностью. Ортогональные вещи.

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

Не надо. Говно другого сорта все равно остается говном. Суть-то не меняется - и то, и другое позволяет прятать очевидную семантику. Точно так же, как с сишным препроцессором, в лиспе ты никогда не скажешь (не увидев всех определений всех использовавшихся макросов), является ли что-то вызовом функции, определяет ли что-то новые имена, и т.д.

С такой логикой, кресты тогда вообще нужно объявить вне закона и предать анафеме, на всякий случай.

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

и продолжить использовать, потому что альтернатив нет :3

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

Нелепая попытка подмены говносинтаксиса гомоиконностью. Ортогональные вещи.

Гомоиконность - это в первую очередь _простой_ синтаксис. Лисп, форт, ассемблер. Больше гомоиконных синтаксисов нет, и, надо полагать, любой гомоиконный ЯП _обязательно_ будет иметь синтаксис лиспа, форта или ассемблера.

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

С такой логикой, кресты тогда вообще нужно объявить вне закона и предать анафеме, на всякий случай.

C++ вполне юзабелен, если кодерам руки выкручивать и вообще безобразия не нарушать. Говнолисп же неюзабелен в принципе, там руки выкручивать нечем.

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

Лисп, форт, ассемблер. Больше гомоиконных синтаксисов нет

Очень хочется послушать про гомоиконный синтаксис ассемблера.

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

Я не вижу технических задач, решению которых он мешает.

Ну, например, он мешает программированию. Чем не техническая задача?

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

Гомоиконность - это в первую очередь _простой_ синтаксис.

Гомоиконность - это фича языка, когда любая корректная программа на языке является одновременно и записью экземпляра некоторого типа данных на том же самом языке. Про «простоту синтаксиса» — это ваши персональные домыслы. Ничто не мешает теоретически существовать гомоиконному брейнфаку, далёкому от «простоты» как свинья от апельсинов.

Больше гомоиконных синтаксисов нет

Лолчто? Io и Tcl, как первое, что приходит на ум.

И даже у сраного Tcl синтаксис намного удобнее.

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

скобчатый синтаксис - одна из реализаций гомоиконности, причем не самая плохая.

в чем проблема?

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

Я не вижу технических задач, решению которых он мешает.

Ну тогда уж можно сказать, что и синтаксис брейнфака технически не мешает использовать его написания программ управления спутниками. Ну или синтаксис xml, который по своим качествам не далеко от брейнфака ушел.

В реальности же они упираются в ограничения человеческого мозга.

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

в чем проблема?

Проблема втом, что ты подменяешь понятия. Другой проблемы тут нет.

скобчатый синтаксис - одна из реализаций гомоиконности

Спасибо, Кэп.

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

он мешает программированию

...первые месяц-два. Если же учесть, что синтаксис прост и хорошо определен, я не считаю его техническим недостатком.

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

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

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

В реальности же они упираются в ограничения человеческого мозга.

Не знаю насчет Брейнфака, но Лисп не упирается.

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