LINUX.ORG.RU

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


0

4

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

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

★★

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

падает при N < 100K.

Она тогда и на сишке падает.

теоретики идут клевать кал.

при чем тут теоретики?

IRL либо не совпадает, либо совпадает, если время допустимо равно бесконечности.

при чем тут время вообще, если речь о практике?

из этого не следует тот факт, что программа с GC не пожрёт 100500Мб памяти, если ей не нужно больше 1.

А сколько ей нужно? Как измерить, сколько нужно программе?

IRL мы и наблюдаем, что ЛЮБАЯ программа с GC пожирает 100500Мб памяти, а остальные программы сосут.

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

Учитывая, что у юзера больше 1 программы с GC, то сосёт именно юзер.

Это проблемы ОС, а не юзера. Если ОС написана с ГЦ, то таковой проблемы нет.

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

тебя обманули.

кто?

на самом деле, ФП - это ФП, а ООП, это ООП.

Да, ФП -это ФП, а ООП - это ООП. Потому что x - это х, для любого х. Но при этом 2*2 = 4, хотя 4 это не 2*2 (разные термы).

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

Если ты понимаешь лишпы, то вот это замыкание:

(let ((x 42))
 (defun foo (y)
  (+ x y)))

(foo 1) ;43

Функция foo замыкается на переменную x. Это та самая инкапсуляция, что происходит в следующем коде на С++:

в контексте Си это НЕ замыкание. X это такая переменная, которая видна исключительно в контексте foo(). Если ты читал SICP, то тебе должно быть ясно, что твоя (let, это всего лишь сахар над твоей лямбдой, которая, в свою очередь, инкапсулирует в себя своё X. Т.е. в контексте сишечки, твоя функция эквивалентна

int foo(int y)
{
    static int x = 42;
    return x+y;
}
За исключением того, что ты вывел X за скобки функции (чего в сишечке прямо делать нельзя. Впрочем и в LISP'е нельзя, но можно криво, или через синтаксический сахар).

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

Охуенная история. А чему в контексте сишечки будет эквивалентен код:

(let ((x 42))
 (defun foo (y)
  (+ x y))
 (defun yoba (y)
  (- x y)))

(foo 1)
(yoba 1)
?

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

Да никто и не спорит, что сделаешь. Все что можно сделать на одном тьюринг-полном ЯП, можно сделать на любом другом тьюринг-полном ЯП. Другое дело, что у тебя уйдет в нцать раз больше усилий без ГЦ, чем с ГЦ.

почему ты в этом так уверен?

Ты в результате в своей реализации напишешь тот же самый сборщик мусора. Но руками, костыльный и неэффективный.

1. кто доказал, что любая структура требует сборщика мусора?

2. кто тебе сказал, что моя реализация будет хуже?

Можешь для тренировки реализовать структуры из Окасаки.

подробнее. Можно ссылку.

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

Не пишу на схемах с ракетками, но CL стандартизирован. Между ClozureCl и ECL код переносится свободно.

тогда ответь на вопрос: www.linux.org.ru/add_comment.jsp?topic=8531963&replyto=8550805

на ваших говноязычках не получается.

Дмитрий, а чего вам вдруг так жопу-то разорвало?

не получается. А говорили - LISP няшка...

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

Т.е. в контексте сишечки, твоя функция эквивалентна

Ну давай, а теперь расшарь static int x между двумя функциями foo и bar, и заодно сделай геттер и сеттер этой x.

X это такая переменная, которая видна исключительно в контексте foo(). Если ты читал SICP, то тебе должно быть ясно, что твоя (let, это всего лишь сахар над твоей лямбдой, которая, в свою очередь, инкапсулирует в себя своё X.

Не имеет никакого значения, как реализован let. Можно сделать аналогичную вещь прямо на лямбде и это все равно останется замыканием. Вообще же твой код на Си не является замыканием, но тоже своего рода инкапсуляция.

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

почему ты в этом так уверен?

потому что тебе придется реализовывать сборщик мусора.

1. кто доказал, что любая структура требует сборщика мусора?

потому что алгоритм работы со структурой _включает в себя_ алгоритм работы сборщика мусора. Ничего доказывать и не надо.

2. кто тебе сказал, что моя реализация будет хуже?

Потому что ты будешь использовать тормозной malloc, который ТОРМОЗИТ.

подробнее. Можно ссылку.

https://www.google.ru/search?q=functional data structure okasaki&oq=funct...

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

огда ответь на вопрос:

Тебе уже ответили, уебок слепошарый.

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

тогда ответь на вопрос:

А тебе уже ответили. Хули, я и на cи могу рекурсией стек сорвать - си виноват или я сам? Ты привел пример циклически замкнутого списка (или как это правильно зовется?). Во время распечатывания этого списка cl впадает в бесконечный цикл, схема, вон, умней.

не получается

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

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

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

забанили тебя за что? За то, что ты демагог, и не умеешь вести спор? Или нет? Может тебя забанили за то, что ты (не)любишь какой-то ЯП? Или какую-то парадигму? Почему меня за это не банят?

С чего вдруг? Я никого неуспешно детектировать не пытался, в отличие от тебя.

ты детектировал мой детектор, который нуждается в ремонте.

А мой детектор таки пока ещё и не нуждается. Т.ч. чини свой.

при чем тут лисперы? Я говорю об общепринятых определениях. Определения интерпретаторы и репла одинаковы у всех.

а я говорю про лисперовские определения лисперовских говноинтерпретаторов.

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

K&R чем тебя не устраивает?

да, не алгол. не жаба. просто Си.

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

У любого ЯП есть стандарт. Этот дебил просто не понимает, что лисп - это не язык, а _семейство_ языков. У семейства стандарта, естественно, нет.

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

Выбирай себе язык, регистрируйся, и я ТЕБЕ докажу, что твой язык - полное говно.

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

забанили тебя за что?

За то, что я послал нахуй одного из заебавших меня здешних долбоебов. Он, вроде, оказался модератором, да. В том треде много кого забанили.

А мой детектор таки пока ещё и не нуждается.

Ну как же? Детектирует неправильно? неправильно. Значит нуждается.

а я говорю про лисперовские определения лисперовских говноинтерпретаторов.

а я говорю о том, что лисперские определения ничем не отличаются от нелисперских определений.

K&R чем тебя не устраивает?

что K&R? Там есть стандарт семейства алголоподобных ЯП? Можно ссылочку? Чтоб вот так и написано «стандарт семейства алголоподобных ЯП».

да, не алгол. не жаба. просто Си.

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

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

запусти свой общелисп и выполни эти строчки. Потом доказывай, какой у тебя крутой ЯП.

Могу предположить, что ты не понимаешь, что зацикливается на выводе, а не при выполнении твоей команды. SETF возвращает результат. Результатом будет циклический список. REPL пытается его вывести, что закономерно приводит к зацикливанию.

Если тебе надо просто создать такой список в REPL, то можно вернуть другое конечное значение. Делов-то!

C:\>wx86cl
Welcome to Clozure Common Lisp Version 1.8-r15286M  (WindowsX8632)!
? (setf x (cons 10 20))
(10 . 20)
? (progn (setf (cdr x) x)
         (values))
?
dave ★★★★★
()
Ответ на: комментарий от drBatty

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

Я выбрал - Racket. И говорю в основном про Racket. Более того - вот в этом же треде я сам просил у долбоебов конкретно говорить, о каком ЯП они говорят (там было о CL), вместо того, чтобы говорить просто «лисп». Потому что просто «лисп» - это не ЯП, это семейство ЯП.

Выбирай себе язык, регистрируйся, и я ТЕБЕ докажу, что твой язык - полное говно.

Нас, анонимных рэкетиров (у Миши аккаунт на лоре, кстати, он не анонимус), в рашке ровно двое, один пишет только на нульче и то весьма редко (и давно), второй - я, да и деанон мне уже сделали года 2 назад, так что не вижу смысла подписываться - все свои и так знают меня даже по ФИО, а кое-кто и с адресом.

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

ФП - это как раз не ограничение, а наоборот.

да ладно! я _могу_ использовать циклы в сишечке, но в CL это только макросы в виде сахара над лямбдами. Ну или давай код с циклом в студию на ФП.

К тому-же, я ещё не видел заказчика, который заказывает проект больше 100(СТА(sic!)) строчек кода, и который полезет в самую глубь кода, в поисках того, имеет-ли какой-либо функциональный объект имя, или не имеет?

Не понял, при чем тут это?

что такое по твоему «лямбда»?

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

ИМХО именовать функции ВСЕГДА надо. Потому-что в коде они ВСЕГДА имеют КОНКРЕТНЫЙ адрес. Функция == метка. Это НЕ объект, не может быть какой-то безымянной функции, она ВСЕГДА имеет имя. Если тебе это не нравится - выбирай другой глобус с другими компьютерами.

И да, поддержку лямбды только осложняют, ибо когда объект только задумывался, имя для него писать излишне, и делать его отдельной функцией тоже.

Ты о чем вообще, бедняша? Объект - это не функция. Функция - не объект.

функция в ФП - это точно такой-же объект, как и любая другая переменная. На то оно и ФП.

Неинтересно что? Ты пока что рассказал какието непонятные сказки о том, что вот модуль без лямбд - это хорошо, а модуль с лямбдами - почемуто плохо, и вообще заказчик не будет смотреть. Можно немного конкретики и примеров, раз уж описать то, что думаешь, ты не в состоянии (словарного запаса не хватает, видимо)?

пример я уже дал. Модуль с лямбдами это всегда плохо. Модуль - это модуль. Он даже своё имя имеет, и потому никак НЕ может быть лямбдой. А лямбда - это костыль, нужный в том случае, если быдлокодер хочет сделать модуль, но не в состоянии осмыслить, что его модуль называется «модуль», а потому делает этот модуль лямбдой, ибо в учебнике прочитал, что (sqrt (+ (* x x) (* y y))) даёт нужный результат.

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

да ладно! я _могу_ использовать циклы в сишечке, но в CL это только макросы в виде сахара над лямбдами.

Ты ебанашка чтоли? Ты бы сам посмотрел во что рассахаривается код с циклами в CL:

* (macroexpand '(loop for i from 1 to 10 do (print i)))

(BLOCK NIL
  (LET ((I 1))
    (DECLARE (TYPE (AND REAL NUMBER) I))
    (SB-LOOP::LOOP-BODY NIL
                        (NIL NIL (WHEN (> I '10) (GO SB-LOOP::END-LOOP)) NIL)
                        ((PRINT I))
                        (NIL (SB-LOOP::LOOP-REALLY-DESETQ I (1+ I))
                         (WHEN (> I '10) (GO SB-LOOP::END-LOOP)) NIL)
                        NIL)))
sb:loop - спецформа, то есть не рассахаривается ни во что.

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

Так и алгол и жаба и си - это все алголоподобные ЯП

Гг.

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

что такое по твоему «лямбда»?

анонимная функция.

ИМХО именовать функции ВСЕГДА надо. Потому-что в коде они ВСЕГДА имеют КОНКРЕТНЫЙ адрес.

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

Это НЕ объект, не может быть какой-то безымянной функции, она ВСЕГДА имеет имя.

правда? какое имя у функции (lambda (x) x)?

пример я уже дал. Модуль с лямбдами это всегда плохо.

почему плохо?

Модуль - это модуль. Он даже своё имя имеет, и потому никак НЕ может быть лямбдой.

Замечательно. Не может - и не будет. В чем проблема-то? Я пока не улавливаю к чему ты ведешь.

А лямбда - это костыль, нужный в том случае, если быдлокодер хочет сделать модуль

Ты ебанашка чтоли? Какой модуль и кто хочет сделать, когда пишет (map (lambda (x) (+ x 2)) '(1 2 3))?

что его модуль называется «модуль»

Где в моем примере с map какието модули, которые называются «модуль»?

что (sqrt (+ (* x x) (* y y))) даёт нужный результат.

при чем тут (sqrt (+ (* x x) (* y y))) вообще? Какое отношение (sqrt (+ (* x x) (* y y))) имеет к лямбдам, я в этом выражении лямбд не вижу. У тебя шизофазия чтоли?

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

функция в ФП - это точно такой-же объект, как и любая другая переменная. На то оно и ФП.

Ты действительно такой поехавший, или троллишь тупостью?

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

да ладно! я _могу_ использовать циклы в сишечке, но в CL это только макросы в виде сахара над лямбдами. Ну или давай код с циклом в студию на ФП.

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

ИМХО именовать функции ВСЕГДА надо. Потому-что в коде они ВСЕГДА имеют КОНКРЕТНЫЙ адрес.

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

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

это ты для кого написал?

Это я для тебя написал. Чтобы ты знал, что «> (setf (cdr x) x)» - это не "(setf (cdr x) x)", а "(print (setf (cdr x) x))".

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

Ты действительно такой поехавший, или троллишь тупостью?

А какая разница? :)

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

Запустил, все ок, все работает как и должно работать. ЧЯДНТ?

$ clisp
  i i i i i i i       ooooo    o        ooooooo   ooooo   ooooo
  I I I I I I I      8     8   8           8     8     o  8    8
  I  \ `+' /  I      8         8           8     8        8    8
   \  `-+-'  /       8         8           8      ooooo   8oooo
    `-__|__-'        8         8           8           8  8
        |            8     o   8           8     o     8  8
  ------+------       ooooo    8oooooo  ooo8ooo   ooooo   8

Добро пожаловать GNU CLISP 2.49 (2010-07-07) <http://clisp.cons.org/>

Copyright (c) Bruno Haible, Michael Stoll 1992, 1993
Copyright (c) Bruno Haible, Marcus Daniels 1994-1997
Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998
Copyright (c) Bruno Haible, Sam Steingold 1999-2000
Copyright (c) Sam Steingold, Bruno Haible 2001-2010

Напечатайте :h и нажмите Ввод для получения справки.

[1]> (setq x (cons 10 20))
(10 . 20)
[2]> (setf (cdr x) x)
^C
** - Ошибка в возможностью продолжения
PRINT: Прервано пользователем
Если вы продолжите (введя 'continue'): Продолжать выполнение
Имеются следующие варианты продолжения:
ABORT          :R1      Прервать главный цикл
Break 1 [3]> 
drBatty ★★
()
Ответ на: комментарий от drBatty

Если тебе так уперлось выводить циклические списки во время сеанса REPL в CL, то переопредели метод print-object для списков. Только нафиг оно не надо. А если все же очень надо, то просто пишется отдельная функция похожая на print, но для списков. В общем, твоя претензия - ерунда какая-то.

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

как ты объяснишь это:

Что заставило тебя подумать, будто я собираюсь что-то объяснять тебе?

слив засчитан.

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

Так что тебе не нравится? Попытался вывести на печать бесконечное количество десяток - репл тебе написал что ты сосешь хуй. Какое поведение ты ожидал?

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

Она тогда и на сишке падает.

ИЧСХ на сишке не падает.

при чем тут время вообще, если речь о практике?

при том, что я ждал 30 минут и не дождался результата. Впрочем, ждать полчаса для тривиальной функции - это у вас обычное дело?

А сколько ей нужно? Как измерить, сколько нужно программе?

я откуда знаю? Несколько гигабайт ей мало. Ну дай мне $$$, протестирую на нескольких десятках гб...

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

потому-что свободная память нужна НЕ ТОЛЬКО этой говнопрограмме.

Это проблемы ОС, а не юзера.

проблема в том, что в ОС есть ОДНА свободная память. А не 10 и не 5.

Если ОС написана с ГЦ, то таковой проблемы нет.

где её скачать?

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

А чему в контексте сишечки будет эквивалентен код:

ничему не будет. А чему в контексте твоего говнолиспа будет эквивалентен указатель на массив указателей на функции?

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

Ну давай, а теперь расшарь static int x между двумя функциями foo и bar, и заодно сделай геттер и сеттер этой x.

зачем?

Не имеет никакого значения, как реализован let. Можно сделать аналогичную вещь прямо на лямбде и это все равно останется замыканием. Вообще же твой код на Си не является замыканием, но тоже своего рода инкапсуляция.

ну и что? Да, это инкапсуляция.

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

ИЧСХ на сишке не падает.

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

при том, что я ждал 30 минут и не дождался результата.

А ГЦ то тут при чем? Давай может ты конкретную функцию напишешь?

я откуда знаю?

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

потому-что свободная память нужна НЕ ТОЛЬКО этой говнопрограмме.

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

проблема в том, что в ОС есть ОДНА свободная память.

Да. И это хорошо. проблем в том, что современные ОС используют память сверхнеэффективно (т.к. нету встроенного гц). И получаем то, что получаем.

где её скачать?

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

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

потому что тебе придется реализовывать сборщик мусора.

где структуры, которые мне не реализовать без GC?

потому что алгоритм работы со структурой _включает в себя_ алгоритм работы сборщика мусора. Ничего доказывать и не надо.

где ЭТИ алгоритмы? В твоей голове? Мне сложно спорить с голосами в твоей голове.

Потому что ты будешь использовать тормозной malloc, который ТОРМОЗИТ.

а ты будешь использовать libastral который не тормозит? Пример кода в студию!

подробнее. Можно ссылку.

https://www.google.ru/search?q=functional data structure okasaki&oq=funct...

https://www.google.ru/#hl=ru&newwindow=1&tbo=d&output=search&...

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

зачем?

Затем, что ты совсем недавно привел неправильную аналогию замыкания (ЧСХ, я привел правильную с классом). А вообще все началось с того, что ты в ответ на мое утверждение, что замыкание - это инкапсуляция, просил привести пример замыкания. И потом зачем-то слился на static int x. Впрочем, ты за последние пару часов уже столько облажался, что наверное и сам со счету сбился.

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

ничему не будет. А чему в контексте твоего говнолиспа будет эквивалентен указатель на массив указателей на функции?

А при чем тут указатели на функцию? Ты попросил пример замыкания - тебе дали пример замыкания. problem, oficier?

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

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

где структуры, которые мне не реализовать без GC?

Я тебе целую книжку указал, где описаны такие структуры.

где ЭТИ алгоритмы?

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

а ты будешь использовать libastral который не тормозит?

ГЦ при выделении памяти просто смешает указатель. То есть несколько тактов процессора. Сколько тактов занимает malloc? При освобождении памяти ГЦ вообще не тратит памяти. То есть 0 тактов. Сколько тратит free?

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

Хули, я и на cи могу рекурсией стек сорвать - си виноват или я сам?

я кода не наблюдаю. Будет код, будет ответ на вопрос.

Ты привел пример циклически замкнутого списка (или как это правильно зовется?). Во время распечатывания этого списка

именно распечатывания? у меня и в коде не работало.

схема, вон, умней.

сишечка ещё умнее. Там такой проблемы _вообще_ не возникало.

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

какой именно диалект говнолиспа ты конкретно защищаешь?

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

и объясни мне, тупому, почему этот код тупо виснет нах?

Да, ты тупой. Виснет не говнокод, а говнорепл.

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

я кода не наблюдаю. Будет код, будет ответ на вопрос.

петушок, это же ты хуйню несешь. Ты и приводи код, на котором гц падает, а сишка - нет.

anonymous
()

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

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

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

сишечка ещё умнее.

А не пиздишь? Сишка не виснет при попытке вывести бесконечное число десяток?

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

я кода не наблюдаю. Будет код, будет ответ на вопрос.

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

именно распечатывания? у меня и в коде не работало.

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

сишечка ещё умнее. Там такой проблемы _вообще_ не возникало.

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

какой именно диалект говнолиспа ты конкретно защищаешь?

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

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

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

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

За то, что я послал

ну я и говорю - не умеешь вести дискуссию, умеешь только кричать, и кидаться фекалиями.

Ну как же? Детектирует неправильно?

ЧСХ - правильно. Вместо ответа на вопрос, тебе пришлось срываться на личные оскорбления, и на (секс)бокс по переписке. Очевидно, что аргументы у тебя кончились.

а я говорю про лисперовские определения лисперовских говноинтерпретаторов.

а я говорю о том, что лисперские определения ничем не отличаются от нелисперских определений.

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

что K&R? Там есть стандарт семейства алголоподобных ЯП? Можно ссылочку? Чтоб вот так и написано «стандарт семейства алголоподобных ЯП».

нет там никакого «алголоподобного», за то там про Си. Ты можешь со мной спорить в контексте Си. Я с тобой могу спорить только в том контексте, который ты сам придумаешь, как тебе на мой пост захочется отвечать. Мне, за свои слова, придётся отвечать, тебе - не придётся. Ибо твои слова ни к чему не относятся, не относятся к LISP'у, и ни относятся к тебе. Твои слова изначально - пустой трёп.

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

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

ты дурак? КАК я твои мессаги отфильтрую от мессаг других анонов? Ты думаешь, что твой IP мне виден? Не виден. Ты - не drBatty, который своего IP никогда не скрывал, и к которому любая шавка может ЛИЧНО придти на его систему. Разница между тобой и мной только в одном - тебя деанонимизировали, и трахнули, а я никогда аноном и не был, а всегда имел таких «анонов» как ты.

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

sb:loop - спецформа, то есть не рассахаривается ни во что.

ЯННП

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

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

анонимная функция.

Все сущности в программе имеют конкретный адрес

иди учись, студент.

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

x = a + b + c;

правда? какое имя у функции (lambda (x) x)?

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

почему плохо?

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

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