
Denis
13.12.2017
17:09:22

Alexander
13.12.2017
17:10:26

A64m
13.12.2017
17:11:02

Denis
13.12.2017
17:11:34
нет
https://github.com/justinwoo/records-fields-pairwise#records-fields-pairwise

Google

Denis
13.12.2017
17:11:54
similar to RowLists in PureScript

A64m
13.12.2017
17:12:13
ну на дженериках-то можно, имеется в виду что в ORF ничего такого нет

Denis
13.12.2017
17:13:46

Dmitry
13.12.2017
17:15:13
а напомните, плс, адрес живого rust- чатика

A64m
13.12.2017
17:15:14
поддерживать тайплевел строки в метаинформации дженерики тоже стали с 8.0 так что вот где-то с того релиза фичи для того чтоб рекорды делать есть

Dmitry
13.12.2017
17:15:18
наверное, пойду туда сдаваться

A64m
13.12.2017
17:15:33
времена компиляции только адовые от всего этого будут, конечно

Pineapple
13.12.2017
17:56:12

A64m
13.12.2017
17:58:11
А? Что?

Pineapple
13.12.2017
17:59:45
Оказывается можно брать метки из женериков. Это же прекрасно можно попробовать впилить из дата фреймы, а то я их что-то совсем забросил

Alexander
13.12.2017
18:00:38
а что где?

Pineapple
13.12.2017
18:00:54
Пришёл всех напугал

Google

A64m
13.12.2017
18:02:32
да, с информированием о новых фичах у хаскелистов точно не все в порядке

Pineapple
13.12.2017
18:03:10
Ну и ещё и я слоупок

? animufag ?
13.12.2017
18:04:23
да каждый раз смотришь на список изменений, вроде всё скучно, вроде просто расширений подобавляли. потом оказывается что люди зависимые типы делают

A64m
13.12.2017
18:07:34
это, кстати, для датафреймов все равно невесело, любым такстом-то название геттера быть не может (как в F# каком-нибудь)

Евгений
13.12.2017
18:32:56

A64m
13.12.2017
18:58:02
вообще чейнджлог у ghc нормальный, там и "самое интересное" отдельно есть, и описание фич
просто гхц-ный мануал вообще, похоже не читают, не только чейнжлог

Quet
13.12.2017
18:59:03
мануалы вообще не очень читают

A64m
13.12.2017
18:59:09
да

Alexander
13.12.2017
18:59:14
а зря..

Quet
13.12.2017
18:59:38
видос который кидали (где индус докладывает) он как -- годный?

Andrei
13.12.2017
19:00:29

Leonid
13.12.2017
19:01:07
Люди вообще не читают, и это печально. Особенно печально что люди ждут что ты почитаешь и им все за минуту объяснишь. Люди вообще фу.

A64m
13.12.2017
19:01:15
по новым фичам в гхц каждый год делают виидео с СПЖ (но в этот раз, похоже, на неосновных мероприятиях на icfp ничего не записали)
также есть два раза в год обзоры новых фич в гхц в комьюнитис анд активитис репорт

Andrei
13.12.2017
19:02:50

A64m
13.12.2017
19:02:57
но это-то точно никто не читает

Quet
13.12.2017
19:03:12

A64m
13.12.2017
19:04:29
а, точно вчера снова начали выкладывать, а то 2 недели пауза была
там пока лисперов только выложили кроме основных

Google

kana
13.12.2017
20:07:39
@elemir90 ты как-то писал, что множество - пара из принадлежности и равенства, но зачем равенство, если
(∀ α ∈ A. α ∈ B) ∧ (|A| = |B|) ⇔ A = B
или
(∀ α ∈ A. α ∈ B) ∧ (∀ α ∈ B. α ∈ A) ⇔ A = B
да и как получить мощность множества за конечное время (или в математике это не значения)?

A
13.12.2017
20:16:23
в хаскеле есть стандартная такая функция ?
f :: a -> b -> c
f a b = a b b

kana
13.12.2017
20:17:13
у тебя по сигнатуре один аргумент
а так, ну напиши ее и используй
f $$ x = f x x
infixr 0 $$
а, или join, точно

A64m
13.12.2017
20:18:50
такая?
> join (+) 2
4

Евгений
13.12.2017
20:19:43

kana
13.12.2017
20:20:59

Евгений
13.12.2017
20:21:10
Конечно, счётная

Egoarka
13.12.2017
20:21:54
соре за офтоп, есть чаты какиенить по матану и дискретке?
я один задал вопрос, но чтобы дураком не казаться, не хочу больше вопрос задавать

Xeta Felius
13.12.2017
20:27:34
> stack solver
Using configuration file: stack.yaml
Using cabal packages:
- .\
Using resolver: lts-9.18
Solver requires that cabal be on your PATH
Try running 'stack install cabal-install'
что-то странное. Вроде утверждается, что stack
— не надстройка над cabal
Однако оно его запросило O_o

A64m
13.12.2017
20:29:31
stack solver это запускалка кабал инсталла и есть
солвера то больше нигде и нет

Евгений
13.12.2017
20:30:01

kana
13.12.2017
20:30:14
о, кидай

Alexander
13.12.2017
20:30:23
двай

Евгений
13.12.2017
20:32:58
Никого нет это не приувеличение
@ru_catheory
Опять у меня будет чат из 10 хаскелистов, лол

Google

Xeta Felius
13.12.2017
21:00:48
Поржите надо мной. ЧТобы добавить пакет в зависимости надо было править package.yaml, а я правил stack.yaml

kana
13.12.2017
21:02:01
иногда приходится править оба файла (если package.yaml это %package%.cabal, а то такого файла я не видел)

A64m
13.12.2017
21:02:30
сейчас напишут, что ни того, ни другого файла вообще не должно быть

Xeta Felius
13.12.2017
21:03:32
Ну... stack.yaml регенерится при stack solver — update-config
и походу исходя из содержимого package.yaml

A
13.12.2017
21:05:56
есть у меня обработчики хттп запросов типа request -> io response
есть диспатчер запросов, который бегает по роутам и выбирает "правильный" обработчик
есть у полученного роута функция типа route -> request -> text -> text, которая может вернуть значение параметра
хочу чтобы обработчик запросов в итоге выглядет примерно так
somethingHandler = do
a <- param "foo"
b <- session "user_id"
return Response 200 (a + b)
проблема в чём - нет полного понимания как сделать автоматическую привязку запроса к функциям param и session и возможно ли, то есть я хочу чтобы запрос первым аргументом был
вопрос - как?

kana
13.12.2017
21:08:08
твой код например может запускаться в Reader Request Response
а param это Text -> Reader Request (Maybe Text)

Admin
ERROR: S client not available

Xeta Felius
13.12.2017
21:08:12

kana
13.12.2017
21:08:42
ну там еще IO будет, поэтому Monad m => ReaderT Request m (Maybe Text)

A
13.12.2017
21:08:47

kana
13.12.2017
21:09:25
ну если ты хочешь читать из реквеста в монадическом стиле, то да
я бы даже завернул в свою монаду и получился бы scotty

A
13.12.2017
21:10:36
в скотти ад какой-то с actionT

kana
13.12.2017
21:10:53
ну ActionT у тебя и получится свой в итоге)
а почему ад?

Xeta Felius
13.12.2017
21:12:36
Блин. Вот тут во втором ответе написано редактируйте стак ямл. Не работает же. T_T
https://stackoverflow.com/questions/31030438/how-to-install-a-package-using-stack
А вот в пакадж ямл прокатило

A
13.12.2017
21:12:49
вообще у меня какое-то раздражение от исходников проектов на хаскеле, вот читаешь все эти на первый взгляд красивые и умные вещи про "правильную" композицию с помощью теории категорий, а потом открываешь какой-нибудь скотти и тебе кажется, что оно там используется как-то извращённо, то есть не добавляет понимания, а кажется наоборот

Alexander
13.12.2017
21:12:51

Google

A
13.12.2017
21:13:07
есть один большой и толстый ActionT, который делает всё
скорее всего это из-за недостатка опыта

Xeta Felius
13.12.2017
21:14:27

A
13.12.2017
21:15:10

kana
13.12.2017
21:15:54
ну вот ActionM это просто обертка над
1) эксептом, то есть мы можем кидать и кетчить эксепшены в экшонах
2) ридером над реквестом
3) стейтом над респонсом
вот на хакадже - https://hackage.haskell.org/package/scotty-0.11.0/docs/src/Web-Scotty-Internal-Types.html#ActionT

A
13.12.2017
21:18:27

kana
13.12.2017
21:18:39
https://github.com/scotty-web/scotty/blob/master/Web/Scotty/Internal/Types.hs#L138 а вот на гитхаье
ну стейт прикрутили для того наверное, чтобы респонс формировать по-отдельности, а не просто return-ном, например
setHeader "header1" "2"
setHeader "header2" "3"
text "hello"
pure ()
если бы можно было респонс только возвращать, был бы ад, если бы в одной функции мы бы формировали хидеры, а в другой боди, потом бы таскали эти значения по коду, чтобы где-то в конце хендлера вернуть
а state вместо writer наверное потому что нужно еще читать, что там в хидеры уже записали-то

Xeta Felius
13.12.2017
21:26:44
в смысле этот язык :3

kana
13.12.2017
21:27:41
ну у меня к хаскелю тьма претензий, начиная от прелюдии заканчивая рекордами, а это я пока с языком особо не работал и не знаю почти всех его проблем

Xeta Felius
13.12.2017
21:27:42
С другой стороны может и добавилось уже пока я его не "трогал"
Ну рекорды да
Интересно, а какие конкретно у тебя претензии к прелюдии, и какие другие претензии?


kana
13.12.2017
21:38:55
1) String через список
2) много косяков из-за того, что язык старый, а обратную совместимость поддерживать нужно, например с полугруппами (которые относительно недавно добавлены), которые "наследуются" от моноидов, а не наоборот. Или монады, которые только недавно стали наследовать от апликативов и еще и pure дублируют
3) опасные функции типа head, которые предпочитаемо должны отдавать Maybe или помечаться как unsafe
4) имена идентификаторов придуманы от балды, кто блин догадается, что first это map первого элемента бифунктора, а fst - это взять первый элемент пары
5) где-то в тайпклассах операторы, где-то текстовые имена функций [и алиасы]
6) ну base имхо попросту жирный какой-то
7) некоторые ужасно жирные тайпклассы типа Num
это вот то что сходу к прелюдии вспомнил
можно посмотреть на https://pursuit.purescript.org/packages/purescript-prelude/3.1.0, вот там все имхо близко к совершенству


Denis
13.12.2017
21:42:31
1) String через список
2) много косяков из-за того, что язык старый, а обратную совместимость поддерживать нужно, например с полугруппами (которые относительно недавно добавлены), которые "наследуются" от моноидов, а не наоборот. Или монады, которые только недавно стали наследовать от апликативов и еще и pure дублируют
3) опасные функции типа head, которые предпочитаемо должны отдавать Maybe или помечаться как unsafe
4) имена идентификаторов придуманы от балды, кто блин догадается, что first это map первого элемента бифунктора, а fst - это взять первый элемент пары
5) где-то в тайпклассах операторы, где-то текстовые имена функций [и алиасы]
6) ну base имхо попросту жирный какой-то
7) некоторые ужасно жирные тайпклассы типа Num
это вот то что сходу к прелюдии вспомнил
можно посмотреть на https://pursuit.purescript.org/packages/purescript-prelude/3.1.0, вот там все имхо близко к совершенству
http://dev.stephendiehl.com/hask/#what-to-avoid
1) String через список
2) много косяков из-за того, что язык старый, а обратную совместимость поддерживать нужно, например с полугруппами (которые относительно недавно добавлены), которые "наследуются" от моноидов, а не наоборот. Или монады, которые только недавно стали наследовать от апликативов и еще и pure дублируют
3) опасные функции типа head, которые предпочитаемо должны отдавать Maybe или помечаться как unsafe
4) имена идентификаторов придуманы от балды, кто блин догадается, что first это map первого элемента бифунктора, а fst - это взять первый элемент пары
5) где-то в тайпклассах операторы, где-то текстовые имена функций [и алиасы]
6) ну base имхо попросту жирный какой-то
7) некоторые ужасно жирные тайпклассы типа Num
это вот то что сходу к прелюдии вспомнил
можно посмотреть на https://pursuit.purescript.org/packages/purescript-prelude/3.1.0, вот там все имхо близко к совершенству
ну и его protolude


kana
13.12.2017
21:44:12
ну я использую universum [иначе меня уволят], который как раз на protolude базируется