очевидно даже не глядя в код, что после возврата потребуются следующие или предыдущие 5 строчек.
такое обращение с данными вписывается в интерфейс итератора и реализуется курсором бд.
в труъ функциональных языках:
— нет присваивание переменным;
— нет скрытого goto в форме последовательности статментов;
— у функций отсутствуют побочные эффекты;
например —
с учётом этих трёх моментов, на уровне трансляции легко вычислить, что в данной континуации вам потребуется только 5 строчек.
P.S.
а на языках запредельно высокого уровня, транслятор вполне сможет вывести, что вообще весь этот кусок кода — сплошное наебалово, и выполнять его не нужно :))
А… так вы об этом.
Я почемуто подумал об уязвимости через переполнение буферов.
А так тут ровно теже приколы что и с храненем сессий, разница лишь в масштабах.
Furthermore, garbage collection can not be used to free this memory, because there are roots outside the system: users’ browsers, bookmarks, brains, and notebooks.
Поэтому всякие менеджеры континуаций с таймаутами и прочим.
И ещё есть подозрение, что размер будет зависить от структуры кода, а не только от количества параметров.
ну, при таком подходе имеет смысл не просто показать но и объяснить суть алгоритма.
чуть более подробно, чем «простенький рекурсивный разбор».
вот я далеко не студент, а глядя на пример алгоритма — совершенно не понимаю как его реализовать в функциональном программировании.
(собственно, потому и коммент про хаскель :)
и не совсем понятно, зачем weights сделаны глобальными.
было бы интересно узнать, почему было решено делать свой протокол, а не надстроить XMPP по примеру гуглотолка?
гдето я подогнался…
с аргументами по умолчанию можно получить и лямбды без аргументов. просто так они не объявляются.
f = lambda(null=None):…
f()
и вродебы какието отличия всётаки были.
а в случае с лямбдой это вычисление какраз откладывается.
непонятно, почему нельзя *args после **kwargs
def foo(a,b,**kwargs,*args):?
перменные спачала какбы инициализруются:
operator['+'][1] = lambda x: x+parse()
а функция parse определяется совсем потом.
вероятно, такойже выкрутас можно сделать и с объявлениями функций.
такое обращение с данными вписывается в интерфейс итератора и реализуется курсором бд.
— нет присваивание переменным;
— нет скрытого goto в форме последовательности статментов;
— у функций отсутствуют побочные эффекты;
например —
с учётом этих трёх моментов, на уровне трансляции легко вычислить, что в данной континуации вам потребуется только 5 строчек.
P.S.
а на языках запредельно высокого уровня, транслятор вполне сможет вывести, что вообще весь этот кусок кода — сплошное наебалово, и выполнять его не нужно :))
Я почемуто подумал об уязвимости через переполнение буферов.
А так тут ровно теже приколы что и с храненем сессий, разница лишь в масштабах.
Furthermore, garbage collection can not be used to free this memory, because there are roots outside the system: users’ browsers, bookmarks, brains, and notebooks.
Поэтому всякие менеджеры континуаций с таймаутами и прочим.
И ещё есть подозрение, что размер будет зависить от структуры кода, а не только от количества параметров.
насколько разбалансированность скобок в исполняемом скрипте.
чуть более подробно, чем «простенький рекурсивный разбор».
вот я далеко не студент, а глядя на пример алгоритма — совершенно не понимаю как его реализовать в функциональном программировании.
(собственно, потому и коммент про хаскель :)