
Evgeniy
03.09.2017
21:42:54

Петр
03.09.2017
21:43:10
всем привет)

Max
03.09.2017
21:43:25

Google

Evgeniy
03.09.2017
21:46:32

Max
03.09.2017
21:47:05

Evgeniy
03.09.2017
21:47:27
Как раз из-за проблем с референсами на пакеты. Но это решают, скоро нормально сделают.

Max
03.09.2017
21:47:37

Friedrich
04.09.2017
03:54:33

Artem
04.09.2017
04:01:30

Friedrich
04.09.2017
04:01:48

Artem
04.09.2017
04:01:55
точно

Friedrich
04.09.2017
04:02:32
.fsi это для интерфейсов, вроде. Почти бесполезные файлы, рудимент из OCaml (только вот там они, как говорят, имеют какой-то смысл).

Artem
04.09.2017
04:03:39
не не, точно fsx пробовал, и второй еще вариант fsscript или как он там, сейчас опечатался

Enhed
04.09.2017
06:01:27
Ребят, подскажите пожалуйста как проверить является ли екземляр определенным типом, чет не могу найти

Evgeniy
04.09.2017
06:05:22

Google

Enhed
04.09.2017
06:13:03

Evgeniy
04.09.2017
06:51:27
Все верно пишет. Сравни вот c этим кодом.
let str : obj = box "hello"
let isString = str :? string

Enhed
04.09.2017
06:52:31
То есть нужна упаковка в обжект обязательно?
Да, так работает, спасибо. Не очень удобно как-то)

Evgeniy
04.09.2017
06:54:38
Или если есть иерархия типов.
В том примере, который ты показал, str уже имеет конкретный тип string, у которого нет и не может быть потомков.

Enhed
04.09.2017
06:59:03
Ну вот у меня иерархия. Я думал там работает как с is в c#. А у меня ошибка случилась из-за того, что я в скобки проверку не вынес в сопоставлении с образцом. Разобрался, спасибо большое)

Igor
04.09.2017
07:44:32
Кажись скоро можно будет форматировать код без проблем.
https://twitter.com/kevin_c_ransom/status/904557903318736896

Evgeniy
04.09.2017
08:10:05
type MessageType =
| Global
| Private
| Online
override x.ToString() =
match x with
| Global -> "g"
| Private -> "p"
| Online -> "o"
let messageType = function
| "g" -> Global
| "p" -> Private
| "o" -> Online
| _ -> failwith "Error"
От клиентов приходят сообщения в детерминированном формате: Жсон еррей вида: [сообщение, отправитель, тип]; где тип - стирнг g|p|o.
Можно еще написать active pattern, чтобы матчить.

Pavel
04.09.2017
08:34:19

Evgeniy
04.09.2017
08:35:00
Расскажите, пожалуйста, про char enum в F#. Как его создать из char?

Roman
04.09.2017
08:35:45

Evgeniy
04.09.2017
08:36:06
Как можно привести 'g' к MessageType.Global?

Friedrich
04.09.2017
08:40:27
Нашёл совет использовать LanguagePrimitives.EnumOfValue.

Igor
04.09.2017
08:41:40

Google

Evgeniy
04.09.2017
08:41:53

Friedrich
04.09.2017
08:42:02
Для интовых энумов должен работать let mt : MessageType = enum 123, а для остальных через EnumOfValue. Кредитсы вот этому чуваку: https://stackoverflow.com/a/867116/2684760

Evgeniy
04.09.2017
08:42:17
Спасибо!

Pavel
04.09.2017
08:43:44

Vasily
04.09.2017
09:54:17
Кстати, вопрос есть, не совсем связанный с f# , но все же.
Есть набор диапазонов интов
Требуется найти все пересечения
Набор большой, больше 300к
Хочется алгоритм/структуру данных, которая найдет пересечения за разумное время
Т.е. условно заданы [3,5] [4,9] [7,7] etc

Vlad
04.09.2017
09:58:23
Типо входит один в какой-то полностью или нет?

Vasily
04.09.2017
09:58:38
Нет, просто пересечения

Astmatik
04.09.2017
09:58:46
Как ты видишь результаты?

Vasily
04.09.2017
09:58:54
Шо такой-то пересекается с таким-то

Astmatik
04.09.2017
09:58:58
Наборы пар с указанием пересечений?

Vasily
04.09.2017
09:59:10
Да, наборы пар

Astmatik
04.09.2017
09:59:29
[3,5][4,9] => [4,5]

Vasily
04.09.2017
09:59:36
Не
То, чем пересекаются, неважно
Важен сам факт пересечения

Google

Vasily
04.09.2017
10:00:53
Условно надо получить [3,5],[4,9]
[4,9],[7,7]

Astmatik
04.09.2017
10:00:58
двойной вложенный цикл с ифом :)

Vasily
04.09.2017
10:01:13
Только вот отрабатывает от очень долго

Astmatik
04.09.2017
10:01:35
plinq?

Vasily
04.09.2017
10:02:55
Тоже не особо поможет

Vlad
04.09.2017
10:03:02
А количество какое?

Vasily
04.09.2017
10:03:31
300000+
диапазонов
На квадратичной сложности в лоб все затыкается
И распараллеливание там не поможет

Astmatik
04.09.2017
10:04:20
смотри, а если так
все диапазоны можно представить на числовой прямой
пересекающимися отрезками
берешь самый низ
и движешься в сторону увеличения

Vasily
04.09.2017
10:05:12
Ну тоже думаю про сортировку

Astmatik
04.09.2017
10:05:37
надо порисовать на листочке, должны мысли появиться

Roman
04.09.2017
10:08:56

Vasily
04.09.2017
10:09:34
Ну по факту сортировка же и есть построение индекса. Иил я ошибаюсь?

Roman
04.09.2017
10:09:56
Да, я тоже подумал об этом.

Google

Astmatik
04.09.2017
10:10:58
без сортировки придётся сравнивать каждый с каждым
а при чем тут вообще индексы? как они помогут?

Vasily
04.09.2017
10:26:30
Хмм... на seq работает в десятки раз медленнее, чем на листах, буду знать
В общем, написал наивный алгоритм
Который некоторые кейсы не учитывате, походу

Evgeniy
04.09.2017
11:25:57
Привет! o/

kana
04.09.2017
11:26:47
Привет. Интересно, что так мало пересечения с конфой по хаскелю и идрису. Вот она, разница между академом и бизнесом

Evgeniy
04.09.2017
11:47:16
Пожалуйте.

Max
04.09.2017
11:49:28
Пожалуйте.
В XamDev давно забили на приветствия)? Сильно

Evgeniy
04.09.2017
11:52:06

Vasily
04.09.2017
11:52:36
Чет сегодня наплыв

Max
04.09.2017
11:52:43

Evgeniy
04.09.2017
13:35:18
А я тебе здесь отвечаю!
type MessageType =
| Global
| Private
| Online
override x.ToString() =
match x with
| Global -> "g"
| Private -> "p"
| Online -> "o"
let messageType = function
| "g" -> Global
| "p" -> Private
| "o" -> Online
| _ -> failwith "Error"
Привет!