
Anatolii
26.08.2016
05:16:22
http://haskelltools.org/
вот надо ждать
можно будет нормально жить
https://commercialhaskell.github.io/intero/

Google

Anatolii
26.08.2016
05:18:01
и вот это оч круто выглядит
но не охота на emacs перезжать

Denis
26.08.2016
05:19:53

Anatolii
26.08.2016
05:20:02
я в виме сижу
и даже не пробовал emacs

Denis
26.08.2016
05:20:56

Anatolii
26.08.2016
05:21:15
я с эрлангом не работал

Denis
26.08.2016
05:21:16
Но как же он меня заебал!

Evgenij
26.08.2016
05:21:26

Anatolii
26.08.2016
05:21:56
http://www.haskellforall.com/2014/03/introductions-to-advanced-haskell-topics.html
вот кстати не плохая статейка
для начинающих

Denis
26.08.2016
05:22:30
Я даже специально сервер для емакса запускал и постоянно в памяти держал, чтобы он хоть чуточку быстрее запускался и ворочался. Я уж не говорю про тотальную прекомпиляцию всех модулей...

Google

Denis
26.08.2016
05:25:20

Anatolii
26.08.2016
05:25:58
вот эти 20 задачек еще вчера сделал
http://blog.tmorris.net/posts/20-intermediate-haskell-exercises/
крутые:)
с последней помучался чуток
даже не выдержал
пошел пересмотрел на stepic видео про монаду state
вроде понял
но пока не начала ставить _
не разобрался
_ - вообще отличная штука

Denis
26.08.2016
05:28:17
В Эрланге без нее никуда :)

Alexander
26.08.2016
05:39:34

Anatolii
26.08.2016
05:59:03
я коненчо с одной стороны могу понять Ивана
но реально, сколько раз в реальной жизни ты работал со списками такой длины?
из того, на чем я писал
Java, Go - там длина списков тоже возвращается int
в Go это еще скорее всего будет int64
а в джаве - это даже не лонг
там это будет наверное int32

Google

Alexander
26.08.2016
06:05:42
или 32 или в зависимости от архитектуры
в haskell в зависимости от архитектуры, на 32 бита - 32, на 64 - 64

Anatolii
26.08.2016
06:06:10
в го точно так, а в джаве уже не помню :(

Denis
26.08.2016
06:15:58
А в божественной сишечке вообще нет нативного типа для списков :)

Alexander
26.08.2016
06:53:35
к слову я уже час жду как посчитается length (1:replicate maxBound 0)
я не знаю дождусь ли я к концу этой недели
впрочем достаточно length (replicate ((maxBound `div 2) + 1) 0`

Denis
26.08.2016
06:55:34

Alexander
26.08.2016
06:55:51
а что ещё возможно для linked list?
хранить инфу о длине в каждом узле?
да и это не сработает
т.к. тогда не построить лениво список

Denis
26.08.2016
06:57:26

Alexander
26.08.2016
06:57:41
да в общем-то нигде не сделаешь нормально

Anatolii
26.08.2016
06:57:47
дело не в хаскеле
а в линкед листе наверное

Alexander
26.08.2016
06:58:02
принципиально, структура данных такая

Denis
26.08.2016
06:58:06
В Си и асме можно :)

Alexander
26.08.2016
06:58:10
как?

Anatolii
26.08.2016
06:58:23
там же не линкед лист будет

Google

Denis
26.08.2016
06:58:45
Посчитать выделенную память и поделить на размер одного элемента?

Alexander
26.08.2016
06:59:01
как посчитать выделенную память под одну из структур?
это linked list же

Denis
26.08.2016
06:59:53
Хм...
Если делать односвязный список на указателях, действительно никак.
Что-то туплю

Alexander
26.08.2016
07:02:29
в общем-то тут становится очевидно, почему linked list используется очень редко

Admin
ERROR: S client not available

Alexander
26.08.2016
07:02:38
в си-подобных яп
и все их ругают
ведь как control structure они уже не работают

Denis
26.08.2016
07:02:53
Ну да, структура не самая удобная

Alexander
26.08.2016
07:02:55
fusion нету
deforestation нету
ну O(1) push, O(1) pop причем очень дешевые

Denis
26.08.2016
07:04:25
А вот интересно (память молчит по этому поводу), насколько эффективно будет сделать список в сишке на базе массивов?
Кажется, что-то подобное я читал давно, но вообще не могу ничего припомнить.
Сразу понятно, что проблемы с вставкой и удалением элементов. Зато быстрый поиск?
Не, бред какой-то. Уж лучше тогда массив и брать как структуру.

Boris
26.08.2016
07:09:15
насколько я знаю, списки обычно реализуются на базе структуры dynamic array (по крайне мере в python, c# это так), там в основе лежит массив.

Google

Denis
26.08.2016
07:17:56
О как!

Alexander
26.08.2016
07:23:49
то, что в java arraylist знаешь?
ну и в прочих
внутри массив, место кончается выделяем 2x памяти и копируем
доступ О(1), добавление амортизированное О(1)

Anatolii
26.08.2016
07:26:37
товарищи, а я насчет stack хотел спросить, я же правильно понимаю что мне достаочно на репозиторий stack.yaml положить и у меня будет redproducable build везде?

Alexander
26.08.2016
07:35:00
for some definition of reproducible
в большинстве случаев - да

Anatolii
26.08.2016
07:52:55
у меня вот такой тип есть
data TDEntry = Key String | DSN { dbType :: String
, db :: Maybe String
, host :: Maybe String
, port :: Maybe String
}
а я хочу его таким сделать:
data TDEntry = Key String | Driver DSN | DSN
ну и DSN это такой же рекорд
наверное это уже через чур?:)
уже понял, вынес рекорд в отдельный тип
@DenisLebedev Привет, помнишь мы с тобой тип для парсеров не могли вывести красивый?

Denis
27.08.2016
14:28:33
Ну?

Anatolii
27.08.2016
14:28:48
там вот такой тип
lines' :: Parser [String]

Denis
27.08.2016
14:30:03
Что-то мало параметров

Anatolii
27.08.2016
14:30:30
ну вот