@haskellru

Страница 375 из 1551
Андрей
31.08.2017
19:54:43
Вектора ресайзить надо оптимально под капотом. С очередью свои сложности. А спписок в Хаскеле - это поток, или генератор.Но в этой задаче бесспорно он не самая оптимальная дструктура данных.

Ilya
31.08.2017
19:55:10
я бы сказал самая неоптимальная =)

ибо список по сути рабботает как стек

а стек это противоположность очереди в каком-то смысле

Google
Андрей
31.08.2017
19:55:29
я бы поспорил насчет сравнения с вектором

Андрей
31.08.2017
19:56:27
если деревьев много и они неглубокие - вектор победит имхо. А если деревья глубокие - вектор просядет из-за постоянных релокаций и забивания памяти, а список сфьюзится и даже в память не будет занимать

Ну выше тремя постами писали про вектра. И до этого тоже, предлагая их в этой задаче.

Ilya
31.08.2017
20:00:39
ну может где-то очередь и реализуют вектором, не знаю

Андрей
31.08.2017
20:02:23
я Окасаков на читал, не знаю как эффективно реализовать очередь в ФП.

Dmitry
31.08.2017
20:03:20
амортизированно эффективно

Yuriy
31.08.2017
20:03:20
Ilya
31.08.2017
20:05:10
import Stdafx в студии тоже есть?:)))

Андрей
31.08.2017
20:05:53
Да, наверное так будет оптимальнее. Если она есть на кодоварсах.

Google
Андрей
31.08.2017
20:06:23
Инкапсуляция рулит

Ilya
31.08.2017
20:06:28
так будет оптимальнее независимо от того, чё там есть на каком-то кодоварсе ;)

мы же тут программы пишем

надо сразу делать нормально, а не извращаться ради непонятно чего

Андрей
31.08.2017
20:06:58
отнюдь. Автор вопроса кату решал, а не программу писал )

Ilya
31.08.2017
20:07:24
я лично вообще не знаю, что такое ката, зато я читал статью про qsort на haskell

https://habrahabr.ru/post/317348/

вот как бы не вышло так, что после таких, как вы варажаетесь, кат не появился ещё один писатель таких qsort-ов

а чё, зато на списках

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

Андрей
31.08.2017
20:10:12
И снова вернулись к холиварам. Хотя кто-то здесь обрадовался, увидев что-то другое кроме идесрачей )

Alexander
31.08.2017
20:11:31
вопрос DList vs Seq vs [],[] вполне себе может быть актуальным

независимо от того задача это на обучение или реальная программа

Ilya
31.08.2017
20:12:13
в третьем варианте

Alexander
31.08.2017
20:12:25
будут

это он он все равно amortized o(1)

Denis
31.08.2017
20:19:13
читал когда Антона Холомьева то он говорил что DList более правильный по производительности

Евгений
31.08.2017
20:26:30
Abbath
31.08.2017
20:28:37
Пиздец

Google
Евгений
31.08.2017
20:28:39
короче поинт в том, что плохи те задачи для начинающих, которые прививают неправильный путь, даже если это делается в угоду последовательному изложению и т.д.
Я могу себе представить человека, который поигрался с классическими алгоритмами на списках и забил на хаскель, но чтобы после этого он продолжить кодить и писать при этом на списках -- нет

Евгений
31.08.2017
20:29:53
qsort на списках это лулзы, а не реальный код

Abbath
31.08.2017
20:29:54
Я решаю задачи ради рейтинга. Оптимизаторы могут идти со своими очередями-хуечередями

Евгений
31.08.2017
20:30:47
Я решаю задачи ради рейтинга. Оптимизаторы могут идти со своими очередями-хуечередями
Пишите на здоровье, мы не вам приказываем, а ноемся о судьбе коммьюнити

Андрей
31.08.2017
20:31:09
Я играла в КВН Только ради замужа И теперь стою я здесь а все девки там уже (С)

А я когда-то читал Александра Вершилова, и он писал, что [] это больше не дата а контрол структура

Раз уж об авторитетах заговорили )))

Ilya
31.08.2017
20:34:32
Я решаю задачи ради рейтинга. Оптимизаторы могут идти со своими очередями-хуечередями
Я напомню, что ты пришёл в чат с вопросом "Как это оптимизировать?"

Abbath
31.08.2017
20:34:51
Потому что не проходило по скорости :)

Зачем там очередь - не ясно

kana
31.08.2017
20:35:19
"оптимизировать достаточно, чтобы система пропустила"

Ilya
31.08.2017
20:35:22
>Зачем там очередь - не ясно потому что она эффективнее в этой задаче. а что тебе нельзя её подключать - я не знал, потому что не знаком с этим сайтом

Андрей
31.08.2017
20:35:24
Но ведь они правы - кто советуют тебе абстракцию Сиквенса

Alexander
31.08.2017
20:37:17
по уровням можно и без очереди, но это то ещё удовольствие

я на степике делал

Андрей
31.08.2017
20:38:20
из любви к искусству? )

Alexander
31.08.2017
20:38:31
да

Google
Alexander
31.08.2017
20:38:42
я вот даже не помню как именно

но поидее там хитрый инстанс для Foldable был

ну и.е очередь там была, но явно не строилась

Андрей
31.08.2017
20:45:40
Ну не все, по крайней мере раньше было не все - может сейчас подвезли. Раньше точно не было векторов и Парсека, например.

kana
31.08.2017
20:51:09
вот такое наивное и совсем не эффективное решение спокойно прошло проверку по времени



как бы разбиваем дерево на массив уровней (где уровень - массив элементов на уровне) и конкатим все

Андрей
31.08.2017
20:52:28
это и есть обход в ширину. остальное - детали реализации

Abbath
31.08.2017
20:58:56
@kana_sama merge это не zipWith?

kana
31.08.2017
20:59:17
zipWith вроде отбросит лишнее

Андрей
31.08.2017
21:01:24
Да можно было не удалять, все уже видели )))

kana
31.08.2017
21:09:24
Ну представь, что ты пишешь код на DSL, идеально заточенным под твою доменную область. Всякая сериализация/десериализация, консёрны с persistence, и т.д. — все это уже за тебя делают. Вот на таком DSL ты только бизнес-логику приложения описываешь. То есть то, что оно концептуально должно делать.
а можно какой-нибудь реальный пример кода? А то в тех простых вещах, что я писал, у меня все было прямо в одной функции - и обращение к базе, и генерация объектов доменной модели (которые я вручную на самом деле не создавал, использовал те, что персистент генерит), то есть никаких edsl, скрывающих реализацию, я не писал

Denis
31.08.2017
21:12:19
https://github.com/haskell-perf/sequences

Index
31.08.2017
21:32:06
я в консоли наслаждаюсь, например
Мне вот интересно, люди реально наслаждаются в консоли, или они IDE хорошей не видели?

Что может быть удобнее, чем одну кнопку нажать и запустить билд, и приложение сразу, или режим дебага?

Зачем какие-то команды вводить?

Консоль -- это все от бедности

Потому что сделать IDE трудно, а напечатать текст в терминал -- не очень

Ilya
31.08.2017
21:34:20
можно точно так же повесить часто используемые команды на хоткеи

Google
Ilya
31.08.2017
21:34:24
и нажимать "одну кнопку"

Андрей
31.08.2017
21:34:59
можно голосовой набор записать )

Index
31.08.2017
21:35:08
Ну можно свою IDE накостылить, это мне не новость

Ilya
31.08.2017
21:35:29
а что новость?:)

Андрей
31.08.2017
21:35:47
клавиатура и мышь как ХИДы - тоже от бедности

Ilya
31.08.2017
21:35:54
что IDE используют те, кто любит изкоробочные решения, а консоль - решения-конструкторы?

у обоих подходов свои плюсы

Index
31.08.2017
21:36:49
а что новость?:)
Что кто-то осознанно отказывается от этого направления развития. По принципу, что не очень-то и хотелось

IDE не случайно содержит в себе слово integrated

Ilya
31.08.2017
21:37:30
Index
31.08.2017
21:37:37
Я могу и прояснить.

Андрей
31.08.2017
21:37:46
Там скорее принцип "убого, зато однообразно"

Index
31.08.2017
21:38:36
Возьмем базовый функционал IDE: подсветка, автокомплит, базовые рефакторинги (extract method), jump to definition, запуск билда

Если все это лепить в vim/Emacs, то несомненно заниматься каждой задачей будет отдельный плагин, каждый из которых самостоятельно попытается распарсить исходники, и каждый из которых сломан по-своему.

В итоге оно медленное и ломается постоянно

В то время как IDE, будучи прочно интегрирована с компилятором, от такого не страдает. Редактировать C# в VS просто удобно, сразу после установки.

И тулинг не скрипит, не ломается, не тормозит

Ilya
31.08.2017
21:40:29
IDE не случайно содержит в себе слово integrated
почитай про философию unix-way, много станет понятно

Даниил
31.08.2017
21:40:37
> сразу после десятичасовой установки fixed

Страница 375 из 1551