Здравствуйте, fmiracle, Вы писали:
F> Кажется, прямо копия из какой-то статьи в инете. F> Кажется
F>... Позволяет запустить асинхронную операцию и позволяет связывать несколько операций в цепочки или параллельные вычисления. Важный момент — промис не имеет отдельного метода запуска, он просто создается и дальше останется только ждать результата. Потому отложенный запуск — через создающие функции.
О да, дорогие мои маленькие любители наркотиков! Мы тут все еще говорим про JS
*кот_ржет.гиф*
Здравствуйте, fmiracle, Вы писали:
F>Это про промисы.
Понятно, не сталкивался. Поэтому из спора самовыпиливаюсь. Решил, что это самописный метод и даже в голову не пришло, что при всем желании его нельзя было бы назвать зарезервированым словом.
Все, поплыл, уже языки путать начал ) Пойду лучше спать
Здравствуйте, anonymous, Вы писали:
A>>>map передаёт в колбек 3 параметра, parseInt принимает два, из которых второй — основание системы счисления. Итого: F>>спасибо, я в курсе этих нюансов кривого языка. A>Тогда не понятно, что эти примеры должны были продемонстрировать.
продемонстрировать то, как простые, очевидные и общепринятые вещи можно сделать через жопу ещё проще и очевидней.
Здравствуйте, neFormal, Вы писали:
A>>Тогда не понятно, что эти примеры должны были продемонстрировать. F>продемонстрировать то, как простые, очевидные и общепринятые вещи можно сделать через жопу ещё проще и очевидней.
А можно определение этих «простых, очевидных и общепринятых вещей» с подтверждающими ссылками?
А зачем тут массив выделяется по new?
Дичь какая-то.
Ага:
/jni/GifTranscoder.cpp
Всё ясно, все свободны. ))
В плюсовом коде никто так не делает.
А если надо было выделить буфер байт для отправки в Джаву, то выделять надо было через сишные malloc/free, бо класс unique_ptr позволяет задавать свой deleter:
template<class T, class Deleter = std::default_delete<T>>
class unique_ptr;
=============
А вообще да, меня в С++ раздражают некоторые вещи, унаследованные из С. Вот как раз автоматическое приведение массива к указателю на первый его элемент.
Ошибка в том что использовали new, да ещё и неумеючи, вместо например std::make_unique, std::vector или вовсе image/view.
Ошибка в том что не протестировали — valgrind выдал бы mismatched delete на первом же прогоне
Здравствуйте, anonymous, Вы писали:
A>>>map передаёт в колбек 3 параметра, parseInt принимает два, из которых второй — основание системы счисления. Итого: F>>спасибо, я в курсе этих нюансов кривого языка.
A>Тогда не понятно, что эти примеры должны были продемонстрировать.
Как бы сказать: без документации понять почему так происходит не просто. То есть когда о такое уже спотыкался, всё понятно, но в первый раз(ы) — WTF?
По-хорошему, при нормальном дизайне языка такие грабли должны быть очевидны — либо map должна требовать точного количества аргументов у функции, либо аргументы должны передаваться явно, что-то вроде такого:
Здравствуйте, Somescout, Вы писали:
S>По-хорошему, при нормальном дизайне языка такие грабли должны быть очевидны — либо map должна требовать точного количества аргументов у функции, либо аргументы должны передаваться явно, что-то вроде такого:
С чего это вдруг? Если функции нужен первый параметр, то какой смысл перечислять все остальные если оно все равно не используется?
Можно считать, что в общем виде любая функция принимает на вход бесконечное число параметров. просто, не все они значимые.
S>
Здравствуйте, Somescout, Вы писали:
A>>Тогда не понятно, что эти примеры должны были продемонстрировать. S>Как бы сказать: без документации понять почему так происходит не просто.
Это странный аргумент из разряда «настоящие программисты не читают мануалы».
S>По-хорошему, при нормальном дизайне языка такие грабли должны быть очевидны — либо map должна требовать точного количества аргументов у функции, либо аргументы должны передаваться явно, что-то вроде такого: S>
S>А js ради экономии нескольких символов позволяет создать подобную ситуацию.
Не вижу, как в языке без сигнатур функций реализовать требование точного количества аргументов. В JS вообще любая функция, в которую ты передаёшь функцию, может вызвать её с любым количеством параметров — к этому надо быть готовым. Это как динамическая типизация — нужно следить самому за тем, что ты делаешь, хотя можно встать в позу и заявить, что «ради экономии пары символов» не ввели статическую.
Правильный путь для приведённого выше примера не отличается от того, что предложил ты:
Здравствуйте, anonymous, Вы писали:
A>>>Тогда не понятно, что эти примеры должны были продемонстрировать. F>>продемонстрировать то, как простые, очевидные и общепринятые вещи можно сделать через жопу ещё проще и очевидней. A>А можно определение этих «простых, очевидных и общепринятых вещей» с подтверждающими ссылками?
Почему это вдруг стало «простыми, очевидными и общепринятыми вещами»? Я просил определение, ссылки на исследования. Пока я вижу «мне так привычнее и переучиваться не желаю».
Здравствуйте, anonymous, Вы писали:
A>Почему это вдруг стало «простыми, очевидными и общепринятыми вещами»? Я просил определение, ссылки на исследования.
зачем переучиваться на ущербный язык, который создаёт проблемы там, где у других их нет?
и я не говорил про привычку, я говорил про общепринятые подходы. и подтвердил ссылками.
пока что от тебя кроме "почитайте мануал про то, как это делать вприсядку, но не подпрыгивая" ничего другого не было.
Я так и думал.
A>>Пока я вижу «мне так привычнее и переучиваться не желаю». F>зачем переучиваться на ущербный язык, который создаёт проблемы там, где у других их нет?
Не переучивайся, тебя не заставляют. Но и не ной тогда.
F>и я не говорил про привычку, я говорил про общепринятые подходы. и подтвердил ссылками.
Нет, ты привёл пару ссылок и заявил, что именно это и есть общепринятый подход, без каких либо доказательств.
F>пока что от тебя кроме "почитайте мануал про то, как это делать вприсядку, но не подпрыгивая" ничего другого не было.
Я ничего такого не писал. Это ты почему-то решил, что аналогичный используемым в других языках способ array.map(function (e) { return parseInt(e) }) — это приседания и подпрыгивания.
Здравствуйте, anonymous, Вы писали:
A>>>Пока я вижу «мне так привычнее и переучиваться не желаю». F>>зачем переучиваться на ущербный язык, который создаёт проблемы там, где у других их нет? A>Не переучивайся, тебя не заставляют. Но и не ной тогда.
ооо, в интернете кто-то объявил монополию на посты и запрещает мне говорить правду!
F>>и я не говорил про привычку, я говорил про общепринятые подходы. и подтвердил ссылками. A>Нет, ты привёл пару ссылок и заявил, что именно это и есть общепринятый подход, без каких либо доказательств.
там четыре популярных языка с реализацией map. из них три — динамические.
это и называется "общепринятым". определение слова прочитаешь выше по треду.
F>>пока что от тебя кроме "почитайте мануал про то, как это делать вприсядку, но не подпрыгивая" ничего другого не было. A>Я ничего такого не писал.
ну да, конечно:
Это странный аргумент из разряда «настоящие программисты не читают мануалы».
скажи теперь, что твои слова неправильно поняли.
A>Это ты почему-то решил, что аналогичный используемым в других языках способ array.map(function (e) { return parseInt(e) }) — это приседания и подпрыгивания.
это не аналогично исходному примеру.
ты бы ещё циклы привёл в качестве примера. в результате делают же то же самое.
Здравствуйте, StandAlone, Вы писали:
SA>Джентльмены, дико извиняюсь за опоздание к срачу. Поскольку он уже стремительно набирает критическую массу и скоро сколлапсирует, возьму на себя смелость воспользоваться замечательной цитатой для создания отдельного топика. SA>Итак, два примера доказательства subj!:
...
SA>Замечательный язык, не правда ли?! простой, выразительный, элегантный и эффективно решающий типичные проблемы.
Ты привел пример проблем динамической типизации вообще + особенности конкретной библиотеки. При чем здесь JavaScript ?
Здравствуйте, StandAlone, Вы писали:
A>>Тогда не понятно, что эти примеры должны были продемонстрировать.
SA>Я, конечно, не уверен, но могу предположить, что коллега демонстрировал свое восхищение потря
А при чем здесь архитектура JS? динамическая типизация + особенности конкретной библиотеки
Здравствуйте, neFormal, Вы писали:
A>>Не переучивайся, тебя не заставляют. Но и не ной тогда. F>ооо, в интернете кто-то объявил монополию на посты и запрещает мне говорить правду!
Правду — говори. Но ты ноешь, что инструмент позволил тебе выстрелить себе в ногу, хотя раньше, когда ты направлял ствол в ногу и нажимал курок, такого не случалось.
F>>>и я не говорил про привычку, я говорил про общепринятые подходы. и подтвердил ссылками. A>>Нет, ты привёл пару ссылок и заявил, что именно это и есть общепринятый подход, без каких либо доказательств. F>там четыре популярных языка с реализацией map. из них три — динамические. это и называется "общепринятым". определение слова прочитаешь выше по треду.
Давай возьмём первый Haskell и попробуем предать в map в качестве колбека функцию, принимающую 2 аргумента. А потом Perl, и то же самое. Какой вариант развития событий общепринят теперь? Отдельно стоит обсудить, что в некоторых языках несколько реализаций map с разным поведением.
F>>>пока что от тебя кроме "почитайте мануал про то, как это делать вприсядку, но не подпрыгивая" ничего другого не было. A>>Я ничего такого не писал. F>Это странный аргумент из разряда «настоящие программисты не читают мануалы». F>http://rsdn.org/forum/flame.comp/6732658.1
F>скажи теперь, что твои слова неправильно поняли.
Нет, их явно в интересах демагогии неправильно представили. Что в мануале написано про приседания и подпрыгивания — твои измышления.
A>>Это ты почему-то решил, что аналогичный используемым в других языках способ array.map(function (e) { return parseInt(e) }) — это приседания и подпрыгивания. F>это не аналогично исходному примеру. ты бы ещё циклы привёл в качестве примера. в результате делают же то же самое.
Исходный пример вообще неверен. Я говорю о других языках.
Здравствуйте, Ikemefula, Вы писали:
A>>>Тогда не понятно, что эти примеры должны были продемонстрировать. SA>>Я, конечно, не уверен, но могу предположить, что коллега демонстрировал свое восхищение потря I>А при чем здесь архитектура JS? динамическая типизация + особенности конкретной библиотеки
а при чём здесь типизация? проблема же в отсутствии проверки количества переданных аргументов. здесь типов нет.
Здравствуйте, anonymous, Вы писали:
A>Правду — говори. Но ты ноешь, что инструмент позволил тебе выстрелить себе в ногу, хотя раньше, когда ты направлял ствол в ногу и нажимал курок, такого не случалось.
говорить, что дизайн кривой — это значить "ныть"? интересная интерпретация.
по сути, вместо того, чтобы сделать предсказуемо, авторы выбрали, наверное, худший вариант.
A>Давай возьмём первый Haskell и попробуем предать в map в качестве колбека функцию, принимающую 2 аргумента. А потом Perl, и то же самое. Какой вариант развития событий общепринят теперь? Отдельно стоит обсудить, что в некоторых языках несколько реализаций map с разным поведением.
давай. тащи сюда пример на перле! сравним с другими динамиками
A>Нет, их явно в интересах демагогии неправильно представили. Что в мануале написано про приседания и подпрыгивания — твои измышления.
это объективный факт. потому что можно обойти эту проблему, например, через лямбду. через короткий синтаксис, а не то, что ты приводишь.
A>>>Это ты почему-то решил, что аналогичный используемым в других языках способ array.map(function (e) { return parseInt(e) }) — это приседания и подпрыгивания. F>>это не аналогично исходному примеру. ты бы ещё циклы привёл в качестве примера. в результате делают же то же самое. A>Исходный пример вообще неверен. Я говорю о других языках.
Здравствуйте, neFormal, Вы писали:
A>>Правду — говори. Но ты ноешь, что инструмент позволил тебе выстрелить себе в ногу, хотя раньше, когда ты направлял ствол в ногу и нажимал курок, такого не случалось. F>говорить, что дизайн кривой — это значить "ныть"? интересная интерпретация. по сути, вместо того, чтобы сделать предсказуемо, авторы выбрали, наверное, худший вариант.
Нет, ныть — приводить надуманные примеры и выдавать их фатальные недостатки.
A>>Давай возьмём первый Haskell и попробуем предать в map в качестве колбека функцию, принимающую 2 аргумента. А потом Perl, и то же самое. Какой вариант развития событий общепринят теперь? Отдельно стоит обсудить, что в некоторых языках несколько реализаций map с разным поведением. F>давай. тащи сюда пример на перле! сравним с другими динамиками
Я тебе предложил уже сравнить две реализации. Как успехи?
A>>Нет, их явно в интересах демагогии неправильно представили. Что в мануале написано про приседания и подпрыгивания — твои измышления. F>это объективный факт. потому что можно обойти эту проблему, например, через лямбду. через короткий синтаксис, а не то, что ты приводишь.
Я и привёл лямбду.
A>>>>Это ты почему-то решил, что аналогичный используемым в других языках способ array.map(function (e) { return parseInt(e) }) — это приседания и подпрыгивания. F>>>это не аналогично исходному примеру. ты бы ещё циклы привёл в качестве примера. в результате делают же то же самое. A>>Исходный пример вообще неверен. Я говорю о других языках. F>меняешь тему? ооок.
Нет. Тема у нас о том, что в JS есть фатальный недостаток по сравнению с другими языками.