
A64m
16.10.2017
09:44:53
получаются такие вот вилы Мортона, при дефолтных настройках выиграть меняя один A невозможно.
@qnikst не уверен что поровну. В какие чанки капабилити набрала для аллокации, те один поток ГЦ трейсит, вроде так.

Alexander
16.10.2017
09:47:37
о, ваще ужасно
это ж почти гарантировано, что одна capability наберёт больше других

Google

A64m
16.10.2017
09:53:39
но я не уверен на этот счет
показатели Parallel GC work balance привда без qb0 обычно ниже плинтуса, как они этого добиваются я помню плохо

Denis
16.10.2017
10:45:09
спасибо

A64m
16.10.2017
15:50:00
отлично, обсуждение первого языка для изучения фп поползло на реддит.
мой личный анекдотический опыт с пурскриптом: когда я переписывал небольшой хеллоуворлд на хаскеле на другие ФЯ (для бенчмарков и определения мест где требуется расставление костылей) я быстро и без особых проблем переписал его на ocaml, f#, alice, idris и даже scala, который и фя-то не назовешь. Но пурскриптовая версия так и не заработала - вышибает стек и привет.

Диёр
16.10.2017
15:54:30
но ок

Pig
16.10.2017
15:59:18
F# какой-то уж очень ограниченный

Тёма
16.10.2017
15:59:38
Чего не скажешь о F*

Диёр
16.10.2017
16:00:39
А F* сырой

Pig
16.10.2017
16:01:07
Пишешь:
let const x _ = x
let const' _ x = x
let curry f x y = f (x, y)
let uncurry f (x, y) = f x y
А вот так уже нельзя:
let fst = uncurry const
И сразу как-то скучно становится.

Google

A64m
16.10.2017
16:01:42
система типов у F# самая убогая из перечисленных, но хоть есть какие-то элементарные ФП удобства вроде нормальнго сранения, не слишком страшного ПМ и сносного вывода типов, чег в скале, например нету

Denis
16.10.2017
16:01:42

A64m
16.10.2017
16:02:12
@xgrommx я их и использовал

Denis
16.10.2017
16:03:05

A64m
16.10.2017
16:04:53
вероятно, но с этим имплементация будет самая костыльная, из работающего по костыльности чемпион смл из-за худших возможностей по завязыванию узлов
Так что для обучения начинающего я бы не рекомендовал
вообще строгий язык с хаскельным синтаксисом (т.е всякие where и let rec по умолчанию) уже минное поле
а тут еще и имплементаация совсем сырая, даже наколеночный haste так весело стек не вышибает на каждом шагу

Alexander
16.10.2017
16:15:36
почему dhall считают хорошей вещью?

Leonid
16.10.2017
16:16:25
Потому что Гонзалес

Index
16.10.2017
16:16:36
Потому что Гонзалез

Alexander
16.10.2017
16:18:55
страннота

A64m
16.10.2017
16:19:52
он страшно выглядит и требует много аннотаций типов и вообще какого-то странного бойлерплейта
но сама концепция-то нормальная

Alexander
16.10.2017
16:21:04
там ни ad-hoc ни row-polymorphism нету
это полная печалька
и мало средств для абтракции
блин нельзя написать let mkType = \a -> .. uses a in let b = [...] : mkType a in b

Denis
16.10.2017
16:56:03
Dhall всем нравится, гм, платонически

Yuriy
16.10.2017
16:57:08

Google

Alexander
16.10.2017
16:57:49
но почему нужен он, а не аналог, который писать пару вечером и он будет делать что надо?

A64m
16.10.2017
16:58:20
ну не пару вечеров, конечно

Yuriy
16.10.2017
16:58:44
ну напиши за пару вечеров аналог

A64m
16.10.2017
16:58:47
но лучше бы действительно кто-то сделал аналог

Alexander
16.10.2017
16:59:11
вот пока вопрос, не лучше ли в dhall контрибьютить
а там правда отличные error messages

A64m
16.10.2017
17:00:19
не думаю, что так в нем можно будет что-то значительное изменить

Alexander
16.10.2017
17:00:19
у меня без прокрутки терминала их не прочитать правда, там какое-то сочинение было

J
16.10.2017
17:12:39
Пыщ

IC
16.10.2017
17:46:36
https://pbs.twimg.com/media/DMLHtKdX0AAwNGN.jpg:large
твоё лицо, когда в твоём языке о ф и г е н н ы е типы

Daniel
16.10.2017
19:23:01
нубский вопрос:
Пытаюсь с тестами в хаскелле разобраться (hspec).
Я правильно понимаю, что в тестах видны только exposed-modules и поэтому надо стараться все выносить из executable в library в exposed-modules?
Мне с непривычки это кажется странным (как тестировать тогда other-modules). Может я доки плохо просмотрел, а может так и принято.

IC
16.10.2017
20:02:14
в executable вообще лучше по минимуму держать. как раз в связи с тестированием, да

Alexander
16.10.2017
20:09:25
internal library вводить
и в ней держать other-modules
библиотека внутренняя пишется просто как
library internal в кабал файле
ну вообще любая именованная библиотека явлй яется внутренней и не экспортируется, но ее можно испортировать в тестах
с другой стороны other-modules в общем случае это далеко не лучшая затея
и неясно зачем так делать
ну кроме того, чтобы портить другим жизнь

Google

Yuriy
16.10.2017
20:33:41

Alexander
16.10.2017
20:35:35
кто, когда отказался?
я вот сейчас у себя собрал так проект
причем тесты в отдельном hs-source-dir им модуля не видно
в документации новой тоже это есть

Yuriy
16.10.2017
20:37:46
просто пару лет назад ходили разговоры, а я год назад нашёл тикет, в котором решили не делать

Alexander
16.10.2017
20:39:09
ни разу не видел
> Cabal 2.0 and later support “internal libraries”, which are extra named libraries (as opposed to the usual unnamed library section)
https://www.haskell.org/cabal/users-guide/developing-packages.html#developing-packages
мне интересно common-fields ли запилили

illiatshurotshka❄️
16.10.2017
20:53:47
я правильно понимаю что комоноид и моноид это одно и тоже?

Bohdan
16.10.2017
20:55:07

Ilya
16.10.2017
21:37:39
Я просто развернул все стрелки, а так я не в теме

illiatshurotshka❄️
16.10.2017
21:38:24
все сложно

kana
16.10.2017
21:38:29
ну, у моноида есть (a, a) -> a, у комоноида a -> (a, a)
и memtpy :: () -> a в a -> ()
comconcat в бесконечный массив развернет

Андрей
16.10.2017
21:39:09
а вообще забавно как он лист развернет из мконката )

Ilya
16.10.2017
21:39:10

illiatshurotshka❄️
16.10.2017
21:39:39
как у нас появляется продукт

Google

illiatshurotshka❄️
16.10.2017
21:40:47
и синглтон сет
из одного обьекта
если мы просто стрелки повернули >_>

Pig
16.10.2017
21:42:52
А зачем моноиду concat?

illiatshurotshka❄️
16.10.2017
21:43:09
конвиниенс

Ilya
16.10.2017
21:44:41
Когда мы отделяем от строки по одной буковке - это комоноид? Или раскладываем натуральное число в сумму единиц?
Пытаюсь придумать какие-то примеры чисто по сигнатуре...

Андрей
16.10.2017
21:45:11
а в сумму двоек не катит?

Ilya
16.10.2017
21:45:56

Андрей
16.10.2017
21:46:02
или в бесконечную сумму нулей, как ту выше предлагали )))

kana
16.10.2017
21:46:04
да я хз вообще, я не шарю)

Андрей
16.10.2017
21:46:34
а что - бесконечный список мемптев как сомконкат! ) как идея?

Ilya
16.10.2017
21:46:35
В comappend
comconcat 7 = [1, 1, 1, 1, 1, 1, 1, 0, 0, 0...]
comconcat "hask" = ["h", "a", "s", "k", "", "", "", ...]
Какой-то бред

illiatshurotshka❄️
16.10.2017
21:50:04
лоол
откуда код?