@gogolang

Страница 1361 из 1630
Alexander
05.09.2018
05:01:43
> Ни один нормальный человек на хаскиле не будет делать рекурсию вместо цикла > Я про циклы и не говорил чсх хммм....

Pawel
05.09.2018
05:02:59
> Ни один нормальный человек на хаскиле не будет делать рекурсию вместо цикла > Я про циклы и не говорил чсх хммм....
Стандартные комбинаторы есть для всего. Внутри там рекурсия конечно, но кому это не пофиг кроме Саши и ему подобных?

Alexander
05.09.2018
05:03:55
btw, хвостовая рекурсия вместо цикла вполне себе норм паттерн

Pawel
05.09.2018
05:17:04
btw, хвостовая рекурсия вместо цикла вполне себе норм паттерн
Нет. Рекурсивные алгоритмы сложнее чем интерактивные аналоги. Годные гайдлайны карают за рекурсию без веских оснований, т.е. почти любую

Google
Александр
05.09.2018
05:20:48
И кто там за рекурсию карает?
Тот кто карает за рекурсию ?

Nick
05.09.2018
05:21:00
Логично

Александр
05.09.2018
05:21:13
рекурсивно!

Harry
05.09.2018
05:21:51
И кто там за рекурсию карает?
И кто там за рекурсию карает?

Pawel
05.09.2018
05:25:12
Итеративные
Это андроед исказил меня

Nick
05.09.2018
05:28:33
@bertolu4i и эт, почитай про хаскель, правда. смешно от тебя высеры читать

Pawel
05.09.2018
05:29:31
И кто там за рекурсию карает?
Я когда делаю коде ревью. Ибо не хочу внизапного SO на ровном месте

Nick
05.09.2018
05:29:52
Тебе же сказали про tail rec

Там не будет so

Pawel
05.09.2018
05:30:14
Иван
05.09.2018
05:30:20
@bertolu4i рекурсивные алгоритмы намного проще итеративных, но их нужно применять с умом, особенно в языках, где нет оптимизации хвостовой рекурсии

Google
Nick
05.09.2018
05:31:17
В голанге?
Причём тут голанг, речь про Хаскель была

В Голанге впринципе оптимизации нет)

Pawel
05.09.2018
05:32:32
Причём тут голанг, речь про Хаскель была
При том что у нас тут чат по го и кодеревью я делаю на нём

Nick
05.09.2018
05:33:02
При том что у нас тут чат по го и кодеревью я делаю на нём
Тогда не пиши тут слово хаскель никогда) и вообще не лезь туда больше, прошу

Daniel
05.09.2018
05:33:10
Коллеги

Сбавьте тон, а то придется вас банить

Alexander
05.09.2018
05:46:32
Нет. Рекурсивные алгоритмы сложнее чем интерактивные аналоги. Годные гайдлайны карают за рекурсию без веских оснований, т.е. почти любую
такс такс такс, я может что-то не так понимаю, но вроде как если кому-то захочется написать qsort/mergesort без рекурсии, то ему придётся вручную работать со стеком, да и вообще сложность возрастает в разы

Alexander
05.09.2018
05:55:06
А про Хаскель есть чатик?

Nick
05.09.2018
05:55:13
Alexander
05.09.2018
05:55:20
А почему вы не там?

Nick
05.09.2018
05:55:52
Я там есть

Alexander
05.09.2018
05:55:59
Alexander
05.09.2018
05:56:59
Я там есть
Ну, ты - это хорошо... я не тебя имел в виду :)

Stanislav
05.09.2018
05:58:24
вообще все D&Q алгоритмы удобнее рекурсией делаются. но насколько часто вы в работе реализуете такие алгоритмы?

Pawel
05.09.2018
05:58:34
быстрая сортировка и сортировка слиянием
ок. покажи код быстрой сортировки с рекурсией, который ты считаешь оптимальным

Stanislav
05.09.2018
05:59:36
к тому же нерекурсивная реализация выйдет эффективнее просто потому что не надо пихать в стек никаких адресов возврата, канареек и прочий хлам

когда дело доходит до реализации общих алгоритмов вроде сортировки каждая наносекунда на счету

Pawel
05.09.2018
06:00:48
код в студию

Google
Pawel
05.09.2018
06:07:12
Господа, топящие за рекурсию. Приведите код быстрой сортировки с рекурсией, или вы пустые болтуны

Pawel
05.09.2018
06:08:20
http://wiki.c2.com/?QuickSortInHaskell
этот код не эффективен. гошня, да и любая итеративная реализация быстрой сортировки работает быстрее и с меньшими затратами по памяти.

Мерлин
05.09.2018
06:11:50
этот код не эффективен. гошня, да и любая итеративная реализация быстрой сортировки работает быстрее и с меньшими затратами по памяти.
Тут я уже вмешаюсь Pawel, приведите результаты бенчмарка, иначе чем вы лучше тех, кого вы ругаете за отсутствие примеров?

Сергей
05.09.2018
06:12:06
Оптимизации помогают развернуть рекурсивный алгоритм ж. Все ок будет
В хаскеле с оптимизацией хвоста не всё так просто из-за лени.

Pawel
05.09.2018
06:15:04
Тут я уже вмешаюсь Pawel, приведите результаты бенчмарка, иначе чем вы лучше тех, кого вы ругаете за отсутствие примеров?
можно и привести, но бенчмарк там не нужен, достаточно посмотреть на структуры данных и контекст их использования. Там копируются списки, для этого выделяются дополнительные чанки на каждой итерации алгоритма. Вот вам код быстрой сортировки на хаскиле, котрый по эффективности вроде бы аналогичен итеративному. И тред с пояснениями https://www.reddit.com/r/coding/comments/codqo/engineering_large_projects_in_a_functional/c0ur6yx/

Alexander
05.09.2018
06:16:43
Alexander
05.09.2018
06:18:11
этот код не эффективен. гошня, да и любая итеративная реализация быстрой сортировки работает быстрее и с меньшими затратами по памяти.
ща в хаскеле появятся линейные типы и можно будет писать типобезопасные чистые in place мутации, тогда хаскелевская быстрая сортировка будет ничем не хуже

Stanislav
05.09.2018
06:18:15
если хвост можно оптимизировать, значит это итеративный алгоритм написанный через рекурсию

Nick
05.09.2018
06:19:05
То есть бенчмарков нету Ну, всё ясно
А их и не будет, написать такое сравнение практически нереально

Не через time же замеры делать)

Мерлин
05.09.2018
06:21:39
Я вообще не понимаю зачем сравнивать скорости кстати Если рекурсивный подход удобнее – например при обходе структур, то лучше использовать его И наоборот Ты всё равно упрешься почти всегда во что-то другое

Pawel
05.09.2018
06:21:52
То есть бенчмарков нету Ну, всё ясно
при чём тут бенчмарки , если реализация на хаскиле имеет сложность бОльшую, чем O ( n log ⁡ n ) ??

Google
Сергей
05.09.2018
06:22:27
Идея в том, что писать классические императивные алгоритмы на фп языках - это извращение. И наоборот

Pawel
05.09.2018
06:23:46
https://play.rust-lang.org/?gist=75342b7290702231c4a42ad920d35d2b&version=stable&mode=debug&edition=2015
не знаю на счёт аморт. сложности, но этот код не читается проще аналогичного гошного

Alexander
05.09.2018
06:24:02
при чём тут бенчмарки , если реализация на хаскиле имеет сложность бОльшую, чем O ( n log ⁡ n ) ??
Аналогичная реализация имеет на хаскеле ту же самую сложность. Другое дело, что аналогичная реализация, это реализация не для дефолтных списков, а для мутабельных массивов.

Мерлин
05.09.2018
06:27:16
при чём тут бенчмарки , если реализация на хаскиле имеет сложность бОльшую, чем O ( n log ⁡ n ) ??
Вам, как человеку якобы пишущему высокопроизводительные приложения, следовало знать, что О большое вообще говоря не определяет скорость алгоритма, а определяет увеличение сложности при росте каких-то параметров Ничто не мешает алгоритму O(n^3) быть быстрее алгоритма O(n^2), всё зависит от кучи условий

Alexander
05.09.2018
06:27:22
не знаю на счёт аморт. сложности, но этот код не читается проще аналогичного гошного
аналогичный гошный код будет усыпан пустыми интерфейсами и тайп ассершенами

Admin
ERROR: S client not available

Nibbler
05.09.2018
06:31:42
мне кажется вы извращаете понятие O

Nick
05.09.2018
06:32:07
Мерлин
05.09.2018
06:32:47
Я бы вообще не стал бы делать никаких предположений о виде роста сложности, учитывая что у нас идёт оптимизация на каждом слое: от трансляции до исполнения на функциональных блоках И это ещё без учета кэшей и предективной выгрузки из памяти

Pawel
05.09.2018
06:32:57
И что?
вопрос риторический

Nibbler
05.09.2018
06:33:10
насколько я помню О - это относительная величина, она не сравнивает языки и их возможности.

Pawel
05.09.2018
06:33:58
Я бы вообще не стал бы делать никаких предположений о виде роста сложности, учитывая что у нас идёт оптимизация на каждом слое: от трансляции до исполнения на функциональных блоках И это ещё без учета кэшей и предективной выгрузки из памяти
тут речь не об оптимизациях, а о информатике. сравнивется функционально-рекурсивный алгоритм, с императивно-итеративным по аморт. сложности и простоте реализации

Pawel
05.09.2018
06:36:00
Так нас интересует сложность реализации или производительность кода? Вы уж определитесь
не производительность бинарника, а гарантии по аморт. сложности

Google
Мерлин
05.09.2018
06:36:21
Откуда?

Alexander
05.09.2018
06:37:16
не производительность бинарника, а гарантии по аморт. сложности
асимптотическая сложность - это свойство алгоритма, а не реализации как бы

David
05.09.2018
06:39:13
Pawel
05.09.2018
06:40:58
Нет никаких гарантий
Есть гарантии - O (n * log n) и O(1) по памяти. "Простой" алгормитм на хаскеле их не даёт, и по фигу что О может быть разным

David
05.09.2018
06:41:09
и какое отношение она имеет к inplace квиксорту?

аморт - амортизированная?

Alexander
05.09.2018
06:41:39
Есть гарантии - O (n * log n) и O(1) по памяти. "Простой" алгормитм на хаскеле их не даёт, и по фигу что О может быть разным
"Простой" алгоритм на хаскеле не является квиксортом, это каждому первокурснику очевидно

David
05.09.2018
06:42:00
где что амортизируется в inplace qsort?

Мерлин
05.09.2018
06:43:51
Есть гарантии - O (n * log n) и O(1) по памяти. "Простой" алгормитм на хаскеле их не даёт, и по фигу что О может быть разным
Да? Так вас всё таки интересует потребление памяти, а не скорость работа или простота реализации? А у вас есть результаты замеров?

Александр
05.09.2018
06:45:26
честно говорят алгоритмы с нуля это какая то узкая совсем ниша

"все украдено до нас"

Alexander
05.09.2018
06:46:09
?
у алгоритма быстрой сортировки есть свойства, которым "простой" алгоритм на хаскеле не удовлетворяет

David
05.09.2018
06:46:41
я правильно понимаю что тут обсуждается тот факт, что рекурсивный qsort на иммутабельном списке менее предпочтителен чем inplace? ?

Pawel
05.09.2018
06:46:43
Да? Так вас всё таки интересует потребление памяти, а не скорость работа или простота реализации? А у вас есть результаты замеров?
да, меня интересует скорость и гарантии по потреблению памяти. Вы не согласны с тем, что "прстой" квиксорт на хакеле сложнее чем O (n * log n) / O(1) ?

David
05.09.2018
06:47:43
и на этом основании делается выовод что хаскель - отстой? )))

Pawel
05.09.2018
06:47:48
я правильно понимаю что тут обсуждается тот факт, что рекурсивный qsort на иммутабельном списке менее предпочтителен чем inplace? ?
"рекурсивный qsort на иммутабельном списке" - это школотронство, предназначенное для обучения, а не реального применения.

Страница 1361 из 1630