Dmitry
амортизированно эффективно
Ilya
import Stdafx в студии тоже есть?:)))
Andrey
Да, наверное так будет оптимальнее. Если она есть на кодоварсах.
Andrey
Инкапсуляция рулит
Ilya
так будет оптимальнее независимо от того, чё там есть на каком-то кодоварсе ;)
Ilya
мы же тут программы пишем
Ilya
надо сразу делать нормально, а не извращаться ради непонятно чего
Andrey
отнюдь. Автор вопроса кату решал, а не программу писал )
Ilya
я лично вообще не знаю, что такое ката, зато я читал статью про qsort на haskell
Ilya
https://habrahabr.ru/post/317348/
Ilya
вот как бы не вышло так, что после таких, как вы варажаетесь, кат не появился ещё один писатель таких qsort-ов
Ilya
а чё, зато на списках
Ilya
короче поинт в том, что плохи те задачи для начинающих, которые прививают неправильный путь, даже если это делается в угоду последовательному изложению и т.д.
Andrey
И снова вернулись к холиварам. Хотя кто-то здесь обрадовался, увидев что-то другое кроме идесрачей )
Alexander
вопрос DList vs Seq vs [],[] вполне себе может быть актуальным
Alexander
независимо от того задача это на обучение или реальная программа
Ilya
в третьем варианте
Alexander
будут
Alexander
это он он все равно amortized o(1)
Зигохистоморфный
читал когда Антона Холомьева то он говорил что DList более правильный по производительности
a66ath
Пиздец
Евгений
короче поинт в том, что плохи те задачи для начинающих, которые прививают неправильный путь, даже если это делается в угоду последовательному изложению и т.д.
Я могу себе представить человека, который поигрался с классическими алгоритмами на списках и забил на хаскель, но чтобы после этого он продолжить кодить и писать при этом на списках -- нет
Ilya
не самозародился же этот код
Евгений
qsort на списках это лулзы, а не реальный код
a66ath
Я решаю задачи ради рейтинга. Оптимизаторы могут идти со своими очередями-хуечередями
Евгений
Я решаю задачи ради рейтинга. Оптимизаторы могут идти со своими очередями-хуечередями
Пишите на здоровье, мы не вам приказываем, а ноемся о судьбе коммьюнити
Andrey
Я играла в КВН Только ради замужа И теперь стою я здесь а все девки там уже (С)
Andrey
А я когда-то читал Александра Вершилова, и он писал, что [] это больше не дата а контрол структура
Andrey
Раз уж об авторитетах заговорили )))
Ilya
Я решаю задачи ради рейтинга. Оптимизаторы могут идти со своими очередями-хуечередями
Я напомню, что ты пришёл в чат с вопросом "Как это оптимизировать?"
a66ath
Потому что не проходило по скорости :)
a66ath
Зачем там очередь - не ясно
кана
"оптимизировать достаточно, чтобы система пропустила"
Ilya
>Зачем там очередь - не ясно потому что она эффективнее в этой задаче. а что тебе нельзя её подключать - я не знал, потому что не знаком с этим сайтом
Andrey
Но ведь они правы - кто советуют тебе абстракцию Сиквенса
Alexander
по уровням можно и без очереди, но это то ещё удовольствие
Alexander
я на степике делал
Andrey
из любви к искусству? )
Alexander
да
Alexander
я вот даже не помню как именно
Alexander
но поидее там хитрый инстанс для Foldable был
Alexander
ну и.е очередь там была, но явно не строилась
Andrey
Ну не все, по крайней мере раньше было не все - может сейчас подвезли. Раньше точно не было векторов и Парсека, например.
кана
вот такое наивное и совсем не эффективное решение спокойно прошло проверку по времени
кана
кана
как бы разбиваем дерево на массив уровней (где уровень - массив элементов на уровне) и конкатим все
Andrey
это и есть обход в ширину. остальное - детали реализации
a66ath
@kana_sama merge это не zipWith?
кана
zipWith вроде отбросит лишнее
Andrey
Да можно было не удалять, все уже видели )))
кана
Ну представь, что ты пишешь код на DSL, идеально заточенным под твою доменную область. Всякая сериализация/десериализация, консёрны с persistence, и т.д. — все это уже за тебя делают. Вот на таком DSL ты только бизнес-логику приложения описываешь. То есть то, что оно концептуально должно делать.
а можно какой-нибудь реальный пример кода? А то в тех простых вещах, что я писал, у меня все было прямо в одной функции - и обращение к базе, и генерация объектов доменной модели (которые я вручную на самом деле не создавал, использовал те, что персистент генерит), то есть никаких edsl, скрывающих реализацию, я не писал
Зигохистоморфный
https://github.com/haskell-perf/sequences
Vladislav
я в консоли наслаждаюсь, например
Мне вот интересно, люди реально наслаждаются в консоли, или они IDE хорошей не видели?
Vladislav
Что может быть удобнее, чем одну кнопку нажать и запустить билд, и приложение сразу, или режим дебага?
Vladislav
Зачем какие-то команды вводить?
Vladislav
Консоль -- это все от бедности
Vladislav
Потому что сделать IDE трудно, а напечатать текст в терминал -- не очень
Ilya
можно точно так же повесить часто используемые команды на хоткеи
Ilya
и нажимать "одну кнопку"
Andrey
можно голосовой набор записать )
Vladislav
Ну можно свою IDE накостылить, это мне не новость
Ilya
а что новость?:)
Andrey
клавиатура и мышь как ХИДы - тоже от бедности
Ilya
что IDE используют те, кто любит изкоробочные решения, а консоль - решения-конструкторы?
Ilya
у обоих подходов свои плюсы
Vladislav
а что новость?:)
Что кто-то осознанно отказывается от этого направления развития. По принципу, что не очень-то и хотелось
Vladislav
IDE не случайно содержит в себе слово integrated
Vladislav
Я могу и прояснить.
Andrey
Там скорее принцип "убого, зато однообразно"
Vladislav
Возьмем базовый функционал IDE: подсветка, автокомплит, базовые рефакторинги (extract method), jump to definition, запуск билда