
Nikolay
09.05.2017
21:23:05
Типа все значения в модуле объявленные за пределами функции теста не доступны внутри теста?

Evgeniy
09.05.2017
21:28:51
Как видишь из сообщения об ошибке, проблема только со значениями ссылочных типов.
Не инициализируются.
Сделай через класс.

Google

Evgeniy
09.05.2017
21:29:42
Как рекомендует документация, сетап для тестов делается в конструкторе.
@Dolfik Суть в том, что модули компилируются в статические классы.
А как с ними xunit работает — не особо-то освещено в документации.
@Dolfik Еще обрати внимание на Expecto.
Там есть поддержка .Net Core, текущая версия v5.0.0-rc1.

Roman
09.05.2017
21:46:37
Привет!

Anton
09.05.2017
21:46:44

Friedrich
10.05.2017
01:50:52

Evgeniy
10.05.2017
05:03:50
@Dolfik Кстати, а ты чего FsUnit не пользуешься?
Там есть хелперы для xunit.

Friedrich
10.05.2017
05:05:04
А я чото тоже не пользуюсь. Надо будет посмотреть.

Nikolay
10.05.2017
05:21:55
FsUnit вроде в неткор не поддерживается

Friedrich
10.05.2017
05:22:34
Поддерживается, я прям токо что заглядывал в сорцы.

Google

Friedrich
10.05.2017
05:23:50
Хотя с вот этим конкретным пакетом почему-то всё грустно, он выходил аж в 2015 году: https://www.nuget.org/packages/FsUnit.xUnit/
Непонятно, нужен он или нет.

Nikolay
10.05.2017
05:27:17
Там нет .Net Standard

Friedrich
10.05.2017
05:27:38
https://www.nuget.org/packages/FsUnit/
Вот тут есть.

Nikolay
10.05.2017
05:28:38
Это nUnit

Friedrich
10.05.2017
05:29:14
Нет, это FsUnit!
А, и правда, отчего-то в описании написано, что там для NUnit поддержка... непонятно это всё, надо разобраться.
Просто это единственный пакет, который обновлялся с 2015. Может, они там уже все части в него собрали?

Evgeniy
10.05.2017
05:32:21
Надо написать мейнтейнерам.

Friedrich
10.05.2017
05:32:32
Неа, не собрали. Скачал пакет — в нём тухло всё.
Я спрошу у Сергея в слаке.

Evgeniy
10.05.2017
05:32:55
Просто в репозитории поддержка кора есть.

Friedrich
10.05.2017
05:33:02
У нас тут как раз админы чинят VPN на работе, мне делать нечего :)

Evgeniy
10.05.2017
05:33:08
Да, давай.
А я на зачёте.

Friedrich
10.05.2017
05:34:23
А, можно не спрашивать. Вот, есть ишуй: https://github.com/fsprojects/FsUnit/issues/102

Evgeniy
10.05.2017
05:34:39
Надо закрыть!
https://github.com/fsharp/fslang-design/blob/master/RFCs/FS-1032-fsharp-in-dotnet-sdk.md

Google

Evgeniy
10.05.2017
07:10:16
Обсуждали уже?
@Dolfik Так что, поправишь тесты или тебе PR прислать? :)

Nikolay
10.05.2017
07:16:31
Мб имеет смысл сериализацию/десериализацию в один тест засунуть?

Igor
10.05.2017
07:25:49

Friedrich
10.05.2017
07:31:32
Ну то есть решение по большей части политическое (сделать F# прям в основном SDK), но в нашу пользу :)

Evgeniy
10.05.2017
07:43:20
А мне нравится идея для каждого проекта доставлять компилятор.
Но если все будет стандартно и интегрированно, наверное, будет получше работать везде.
Я, правда, не понял, получится ли в этом случае тот же компилятор обновлять быстро.

Friedrich
10.05.2017
07:57:45
Хотя чорт его знает. Это и правда RFC, надо думать над этим.

Nikolay
10.05.2017
08:02:20

Evgeniy
10.05.2017
08:36:26
Привет!

Igor
10.05.2017
08:40:59
Все таки я не пойму, тут есть кто хотя бы слышал про “свободные (free) монады”?
Или это все фишка Scala и за ее приделами никому не интересная (я в общем тоже не фанат)?

Alexander
10.05.2017
08:43:18
я слышал
это изначально фишка хаскеля ) как и большинство остальных фишек
но я тоже в основном в scala-комьюнити видел упоминания и интерес

Friedrich
10.05.2017
08:48:36
Я слышал в контексте Haskell про них.

Igor
10.05.2017
08:54:38
Посмотрел https://youtu.be/M258zVn4m2M (Рунар их только и продвигает) - вроде сами по себе они не сложные,
но вот комбинирование разных не так очевидно.
Хотя и не совсем понятно, в чем конкретно их преймущество?
Они конечно позволяют писать “не чистый” код смешанный с pure-functions, но нужно ли это…

Alexey
10.05.2017
08:55:02
После эффектов в Idris все эти free-monad'ы выглядят костыльно

Google

Friedrich
10.05.2017
08:55:34
Надо всё-таки от проблемы идти. Есть такая-то проблема (скажем, композируемость эффектов или что-нибудь в этом роде). Мы хотим её решить, и применяем следующую конструкцию.

anton
10.05.2017
08:55:34

Friedrich
10.05.2017
08:55:59
А просто так можно сколько угодно терминов изобрести и концепций, и все они будут не нужны

anton
10.05.2017
08:56:19
сначала нужно изобрести проблему, а потом к ней термин и решение
кому нибудь в жизни нужны были хотябы монады? как часто?

Friedrich
10.05.2017
08:57:31
Да, нужны. Каждый день — списки, option, IO :)

Igor
10.05.2017
08:58:58

Alexander
10.05.2017
09:00:15
Эмм, как бы хаскелл вообще pure язык

Admin
ERROR: S client not available

Alexander
10.05.2017
09:00:28
Там нет выбора такого

Friedrich
10.05.2017
09:00:46
unsafePerformIO

Alexander
10.05.2017
09:00:56
Ну это не в счёт

Igor
10.05.2017
09:02:11
unsafePerformIO
Java тоже вроде с GC, а возьмешь sun.misc.Unsafe и пожалуйста: ручное управлению памятью и возможные сикфолты
Я кстати в Scala чатике спрашивал про freemonads, так там никто своих не пишет вообще,
а максимум юзают готовые библиотечки (для работы с БД) использующие это принцип.

Alexander
10.05.2017
09:04:43

anton
10.05.2017
09:05:03

Igor
10.05.2017
09:05:25
doobie то?
именно его (ну это я так понял что он для БД, сам конечно не юзал)

anton
10.05.2017
09:06:28

Alexander
10.05.2017
09:10:20
так а почему именно фри монады интересуют?

Alexey
10.05.2017
09:11:09
Модное слово нынче :)

Google

Alexander
10.05.2017
09:11:23
ну просто монады - это понятная прагматичная вещь :)

Vasily
10.05.2017
09:12:37
Хайп очередной

Alexander
10.05.2017
09:12:48
а фри монады это намного менее понятная и менее прагматичная вещь

Igor
10.05.2017
09:14:50
так а почему именно фри монады интересуют?
В общем для расширения кругозора, с обычными все более менее понятно.
Да хотелось для примера их заюзать в Android приложение на Kotlin (может еще стать на хабре накатать и получить инвайт…)

Alexey
10.05.2017
09:17:46
https://youtu.be/H28QqxO7Ihc

Nikolay
10.05.2017
09:32:23
Привет :)

Evgeniy
10.05.2017
09:58:15
На уровне Advanced Beginner никаких free monad нет. :)

Friedrich
10.05.2017
11:11:27
Заинтересовался тут checked-арифметикой, и смотрите как круто можно на F# сделать: http://stackoverflow.com/a/2273682/2684760

Evgeniy
10.05.2017
11:26:27
@fvnever Надо улучшить.
Чтобы оно не исключения бросало, а отдавало Result, например.

Friedrich
10.05.2017
11:28:49
Заврапать!

Evgeniy
10.05.2017
11:29:54
@fvnever Ну, и Checked тип сделать дженерик.

Friedrich
10.05.2017
11:30:56

Pig
10.05.2017
11:34:50
Выглядит так классно, что мне кажется что кто-то это уже сделал.

Evgeniy
10.05.2017
11:41:16
@fvnever Думаешь в нюгет нужно?

Friedrich
10.05.2017
11:41:58

Evgeniy
10.05.2017
11:43:20
@fvnever https://hastebin.com/vuhemiyibe.pas
Насчет врапания во что-либо можно еще подумать.
Просто исключения в CE -- не самая приятная штука. :)