
Алекс
18.09.2017
18:01:59

Oleg
18.09.2017
18:02:13

Evgeniy
18.09.2017
18:03:45

Алекс
18.09.2017
18:05:31

Google

Алекс
18.09.2017
18:05:43
В любом случае это хорошо)

Evgeniy
18.09.2017
18:17:10
Akkling (experimental F# API for Akka.NET) v0.7 released:
https://www.nuget.org/packages/Akkling/

Roman
18.09.2017
18:17:19
Ого

Oleg
18.09.2017
18:19:11

Evgeniy
18.09.2017
18:20:00

Oleg
18.09.2017
18:23:44
Мне вообще Akka.Streams нужны, в Akkling они нормально завернуты

Evgeniy
18.09.2017
18:25:35

Oleg
18.09.2017
18:40:26
Покопаюсь завтра https://www.reddit.com/r/dotnet/comments/64xdnx/binary_serialization_alternative_in_net_core/

Pawel
18.09.2017
20:03:01

kana
18.09.2017
20:07:51
Только увидел твое сообщение про бовер. Почему-то был уверен, что он умер 2-3 года назад и все давно используют чисто вебпак с нпм, или аналоги для бандлинга, но именно с нпм

Pawel
18.09.2017
20:14:22

Roman
19.09.2017
09:25:37
Можно на F# побаловаться.

Google

Roman
19.09.2017
09:25:37
Официально открыта площадка http://aicups.ru!
https://habrahabr.ru/company/mailru/blog/337942/ анонс первого чемпионата. Go к нам ;)
Проблема только в клиенте. C# клиент это java код транспличеный в C#.
Привет!

Aleksey
19.09.2017
14:24:59
Привет!
А тут людно, и активность не нулевая - это приятно :)

Vasily
19.09.2017
14:28:51
Отож

Friedrich
19.09.2017
14:29:18
Даже иногда код пишут!

Aleksey
19.09.2017
14:29:26
Это хорошо! Активное сообщество - это важно!

Friedrich
19.09.2017
14:30:51
Если что, мы базируемся вот тут: http://fsharplang.ru/ / https://github.com/fsharplang-ru
У нас там есть переводы статей (изредка закидываем на хабр) и проекты.
Привет!

Yuri
19.09.2017
14:31:39
Привет!

Aleksey
19.09.2017
14:32:51
Я то сам - хаскелист (а ещё Elm и PureScript), так что сюда заглянул больше для интересу, чем из профессионального любопытства :)
Но в плане common FP questions могу помочь, если что :)

Vasily
19.09.2017
14:34:23
За теорию категорий ответишь? :)

Aleksey
19.09.2017
14:35:13
Не, я практик больше. За теоркатом - в хаскелечатик или к идрисовцам :)
Монады знаю, да :)

Vasily
19.09.2017
14:37:15
Да концепция монад-то в целом более-менее понятна, как ее на практике применять

Aleksey
19.09.2017
14:39:14
Мы применяем постоянно :) Потому как по-другому у нас нельзя

Friedrich
19.09.2017
14:40:48
А вот в F# вполне можно припеваючи жить, не зная монад и всего такого.
Хотя некоторые заковыристые библиотеки без этого очень сложно понять.
(хотя некоторые библиотеки и с этим сложно понять)

Google

Vasily
19.09.2017
14:42:26
Некоторые библиотеки вообще не понять

Aleksey
19.09.2017
14:42:51
Дело не в припеваючи/неприпеваючи. Дело в том, носколько предсказуемо работает программа и насколько полно можно о ней рассуждать. Монады это позволяют. Как и любой другой способ контроля эффектов

Vlad
19.09.2017
14:43:09

Friedrich
19.09.2017
14:43:21

Vlad
19.09.2017
14:43:43
рыбки читаемость портят для несведущих, это да

Aleksey
19.09.2017
14:44:13
встроенные в Perl регулярки читаемость портят для всех :)
А синтаксис разный бывает, не Алголом единым, как говорится
В ASCII маловато символов, поэтому и приходится "рыбок" делать

Friedrich
19.09.2017
14:45:51
Хе-хе, надо Дону предложить добавить юникодовые операторы :)

Vasily
19.09.2017
14:46:06
программирование на смайлах

Aleksey
19.09.2017
14:46:21
Можно просто лигатуры прикрутить :)

Friedrich
19.09.2017
14:46:28
Наделают всяких →> ¡ ¿

Evgeniy
19.09.2017
14:47:12

Aleksey
19.09.2017
14:47:16
В Haskell есть юникодные операторы, но это как-то не прижилось - слишком рано добавили, тогда ещё многие в терминале сидели и не у всех отображалось :)

Friedrich
19.09.2017
14:47:21

Aleksey
19.09.2017
14:47:44
Elm-овцы вон тоже лигатуры любят
Особенно для |> и <|
Только у Elm нету тайпклассов, поэтому полиморфизм ограничен (тем, что он - не ограниченный), а значит ограничиться небольшим кол-вом полиморфных операторов не выйдет...

Evgeniy
19.09.2017
14:50:55

Google

Aleksey
19.09.2017
14:51:19
Модули же есть, вроде?

Evgeniy
19.09.2017
14:51:30

Vasily
19.09.2017
14:51:58
О, кстати, разъясните за тайпклассы
Шо за зверь

Aleksey
19.09.2017
14:52:42
это когда ты пишешь
class Eq a where
(==) :: a -> a -> Bool
Это подразумевает, что любой тип, который принадлежит этому классу типов, умеет ==

Vasily
19.09.2017
14:53:11
А, тип вычисляется на основе сигнатур констрейнтов?

Aleksey
19.09.2017
14:53:19
Ага

Vasily
19.09.2017
14:53:44
Т.е. под него попадает любой тип, в котором реализовано ==

Aleksey
19.09.2017
14:53:50
Т.е. можно написать
unique :: Eq a => [a] -> Bool

Vasily
19.09.2017
14:54:19
Строку не совсем понял

Aleksey
19.09.2017
14:54:56
Эта функция полиморфна - работает для любых списков [a] - но требует, чтобы элементы списка a поддерживали проверку на равество (Eq a)

Friedrich
19.09.2017
14:55:23
Если завезут SRTP, которые резолвятся по методам-расширениям, у нас станет так же мощно.
Тогда заживём!

Aleksey
19.09.2017
14:55:59
Это чем-то похоже на интерфейсы в ООП, только возможностей больше

Evgeniy
19.09.2017
14:56:00
Vasily Мне нравятся объяснения через реализацию. Вот, смотри, возможный концепт тайпклассов для F#.
https://github.com/MattWindsor91/visualfsharp/blob/hackathon-vs/examples/fsconcepts.md

Vasily
19.09.2017
14:56:05
Ну будем ждать

Friedrich
19.09.2017
14:56:48

Evgeniy
19.09.2017
14:57:27

Google

Friedrich
19.09.2017
14:57:58
Не факт, что в CLR в итоге всё-таки потянут изменения. Могут решить там локально у себя в C#.
Сам понимаешь, разговоры идут разные, и прототипы даже для C# тоже есть разные.

Evgeniy
19.09.2017
14:58:44

Friedrich
19.09.2017
14:58:45
Раньше Мэдс говорил, что изменений в CLR не будет, а сейчас вот говорит что будут. Это не окончательно всё.

Aleksey
19.09.2017
14:59:14
окэмловы (точнее SML-евы) модули что-то похожее позволяют выразить - завязываемся на сигнатуру модуля и имеем нужное поведение и при этом полиморфизм

Friedrich
19.09.2017
15:00:17
Ну и не забывай про F#. Мне кажется, ты забываешь про F# (иронично, а?)

Vasily
19.09.2017
15:01:23
Ну в F# в целом можно написать свои тайп-классы, используя констрейнты, по идее

Evgeniy
19.09.2017
15:01:31

Vasily
19.09.2017
15:01:31
Даже в текущей реализации

Friedrich
19.09.2017
15:01:38
F# 5 (?) тоже должен будет как-то работать на предыдущих рантаймах. Если у нас будет core-фича, которая опирается на изменения CLR, то вообще нифига непонятно, что будет с нашими инициативами на Mono, на .NET Native, на всём вот этом.

Vasily
19.09.2017
15:02:12

Evgeniy
19.09.2017
15:02:15

Aleksey
19.09.2017
15:02:35
Простой ограниченный параметрический полиморфизм можно накостылять разными способами. Но этого мало

Evgeniy
19.09.2017
15:02:45
А в чем отличия?
Ты можешь это делать только для своего кода. У тебя не получится расширить чужие типы, без доступа к их реализации и перекомпиляции.
В этом же суть тайпклассов.

Vasily
19.09.2017
15:03:17
Они же имплиситы, шоле?

Friedrich
19.09.2017
15:03:22

Vasily
19.09.2017
15:03:54
Тогда я недопонимаю, что же все таки такое тайпклассы

Friedrich
19.09.2017
15:03:56
Ну, это сегодня такая ситуация. Есть прототипы, которые грозятся это поменять. Если всё сложится очень хорошо, то, может, будет даже в 4.2.