
eugene
31.05.2017
14:15:11
Даже если указать, то ругается, потому что у Equal тип ((obj * obj) * (obj * obj) -> bool)

Roman
31.05.2017
14:17:04
а зачем ты Equal в интерфейс внес?
напиши в реализации override
вдруг поможет

Google

Vasily
31.05.2017
14:18:16
Не поможет

eugene
31.05.2017
14:18:18
Так у меня же там abstract

Roman
31.05.2017
14:18:50

eugene
31.05.2017
14:25:56
Видимо типы вывести не может
Так работает

Летучая
31.05.2017
14:35:07
type MyType() =
member A : string with get and set
interface IA with
member SayIA()

eugene
31.05.2017
15:01:31
А type в другом type нельзя объявлять, да?

Vasily
31.05.2017
15:01:40
Низя

eugene
31.05.2017
15:01:53
Эх

Vasily
31.05.2017
15:02:09
Тут концепция компиляции другая
Чем в c#

Google

eugene
31.05.2017
15:02:23
Я не знаю c# :)

Vasily
31.05.2017
15:02:37
А что знаешь?

eugene
31.05.2017
15:02:37
Я пытаюсь со стороны OCaml зайти

Vasily
31.05.2017
15:02:53
В ocaml порядок файлов важен?

eugene
31.05.2017
15:03:14
И тут нет модулей с параметризацией и все, теперь не знаю как выразить.

Vasily
31.05.2017
15:03:30
Ну ты скажи, чего хочешь добиться
На уровне типов

eugene
31.05.2017
15:04:18

Vasily
31.05.2017
15:05:01
Если ты про 'a view - это тебе надо discriminated union
Вообще, в чат надо призвать @gsomix
Он Окамл вроде знает

eugene
31.05.2017
15:06:53
Я пытаюсь заменить модуль-сигнатуру типом-интерфейсом. В нем нельзя объявить новый type, а нужно, это как раз 'a view.

Vasily
31.05.2017
15:08:37
Еще раз

Evgeniy
31.05.2017
16:26:10
@welltyped Да, придется перепроектировать.

Friedrich
31.05.2017
16:54:59
Эх, на Appveyor до сих пор F# 4.0 вместо 4.1.

Evgeniy
31.05.2017
16:56:00
@fvnever Разве?
Я помню, что в Travis был 4.0, а appveyor норм.

Friedrich
31.05.2017
16:56:29
А щас наоборот :)
https://github.com/ForNeVeR/1969/pull/13
Вон там апвеёр падает, потому что не может распарсить [<Struct>].

Google

Friedrich
31.05.2017
16:57:51
Я вообще-то даже не собирался использовать 4.1. Но я человек простой: вижу структуру — леплю на неё [<Struct>].

Evgeniy
31.05.2017
16:58:02
Странно.

Friedrich
31.05.2017
17:00:13
Починилось вот таким коммитом: https://github.com/ForNeVeR/1969/pull/13/commits/5d66b7ce99db933eec7b23afd934fd048db2b722

Evgeniy
31.05.2017
17:00:37
@fvnever Ну конечно!

Friedrich
31.05.2017
17:04:46
Вообще, для портабельности надо будет из нугета компилятор присобачить. Кто-нибудь разбирался, как это правильно делается?

Evgeniy
31.05.2017
17:05:23
@fvnever Посмотри skalarprodukt.

Friedrich
31.05.2017
17:05:40
А мы там прям компилятор припёрли?

Evgeniy
31.05.2017
17:05:52
Я делал для Travis.

Friedrich
31.05.2017
17:08:46
Хм, похоже, что там просто paket add nuget FSharp.Compiler.Tools version 4.1.0, а дальше оно само. Поразительно.

Evgeniy
31.05.2017
17:11:26
@fvnever Нет, это не все.
Я еще прописывал пути до targets в проекте.

Nikolay
31.05.2017
17:11:47
Ещё раз спрошу :3 Может подкините идею удобного DSL для телеграм библиотеки?

Friedrich
31.05.2017
17:12:51
@fvnever Нет, это не все.
Аха, соль вот тут: https://github.com/ForNeVeR/skalarprodukt/pull/26/files#diff-27ebce35e624ce2098a4da8dd9c1ce83R46

Nikolay
31.05.2017
17:13:53

Evgeniy
31.05.2017
17:19:31
https://pragprog.com/book/swdddf/domain-modeling-made-functional
Смотрите, что пишут.

Nikolay
31.05.2017
17:29:44
В Newtonsoft.Json кстати есть конвертер DU, но он не работает так, как надо
Может я просто не правильно делаю, и в моём случае не нужен DU?

Roman
31.05.2017
18:10:19

Google

Aminion
31.05.2017
18:38:58
Пропустил дискач по DI, но все же, как в фп решается вопрос 9000 зависимостей, которые в отсутствии конструктора должны быть параметрами функции? Плюс, это что же, ручками прокидывать все зависимости сквозь слои функций?

Igor
31.05.2017
18:48:37

Летучая
31.05.2017
18:50:13
Громко орал когда смотрел этот видос
Хороший стендапер
И доклады познавательные

Aminion
31.05.2017
18:50:50
Ну так то да, я на шарпе в основном пишу, пока слабо представляю архитектуру фп программы.

Igor
31.05.2017
18:52:34

k0balt
31.05.2017
19:01:50

Evgeniy
31.05.2017
19:03:39
Valentine Привет!

Valentine
31.05.2017
19:03:58
Добрый вечер!

Artemy
31.05.2017
19:33:53
Добрый

Летучая
31.05.2017
19:51:14

Nikolay
31.05.2017
20:40:20
А как строка называется с тремя кавычками?

k0balt
31.05.2017
20:54:45
экранированная кавычка? )

Artemy
31.05.2017
20:56:06
triple-quoted string/трёхкавычечная строка?

Nikolay
31.05.2017
20:56:41
Меня интересует в общем как разрулить такой случай:
let value = """ some "string""""
Ну кроме тупого:
let value = """ some "string""" + "\""

Artemy
31.05.2017
20:59:32

Nikolay
31.05.2017
21:00:57

k0balt
31.05.2017
21:01:30
а что в value записаться должно?
" some "string""?

Nikolay
31.05.2017
21:01:54

Google

Artemy
31.05.2017
21:02:14
Обычные строки с экранированием кавычек не очень подходят?

k0balt
31.05.2017
21:02:41
let value = @" some ""string""" я бы так писал

Artemy
31.05.2017
21:02:45
А то с трёхкавычечными действительно не очень работает

Nikolay
31.05.2017
21:03:13
Интересует именно возможность сделать с тремя кавычками такой финт :)

Artemy
31.05.2017
21:04:17
Оно того стоит?)
Тем более ясно, что просто так вот не работает. А какой-то другой вариант навряд ли уже будет лучше экранирования кавычки будь то слэшем, будь то кавычкой.

Nikolay
31.05.2017
21:05:33
Просто спортивный интерес :)

Artemy
31.05.2017
21:05:51
Разве что пробел или перенос строки.
Ну или ещё что

Nikolay
31.05.2017
21:30:37
Получилось конвертер сделать для DU, но пока работает только сериализация
Десериализовать хз как, главная сложность в том, чтобы определить какой из кейсов DU подходит под json

Летучая
31.05.2017
21:36:34
Ужасное коверканье строковых литералов
В кошмарах снится, кто вообще такое придумал

Serge
31.05.2017
21:47:17
Поставь себя на место парсера! Как рассмативать """"? Как "(""") или как (""")"? А может быть, вообще как ("")("")?

Летучая
31.05.2017
21:47:44
Досматривать до конца. У парсера питона с этим проблем нет, так почему у фшарпа они должны быть?
А, нет, у питона та же проблема.

Serge
31.05.2017
21:49:09
Потому что F# — не Python? ?
Я даже не стал проверять, ага ?