@Fsharp_chat

Страница 300 из 772
Evgeniy
03.09.2017
21:42:54
С порядком файлов разобрался. А как юзать nuget пакеты для f# intellisence ? только скачать отдельно dll и через #r прописать путь ?
Для F# Interactive? Пожалуй. Можно ещё Paket заюзать, он умеет скачивать пакеты в папку с проектом, будет проще рефересить из F# Interactive.

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

Google
Evgeniy
03.09.2017
21:46:32
но он жадный и требует Mono
Да, F# Interactive нет в Core.

Max
03.09.2017
21:47:05
Да, F# Interactive нет в Core.
ну, я его скачал как пакет fsharp...

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

Max
03.09.2017
21:47:37
Да, F# Interactive нет в Core.
в общем-то он работает, только я не знаю где nuget manager от vscode хранит либы

Friedrich
04.09.2017
03:54:33
но он жадный и требует Mono
Ну, я вот пишу код, практически не пользуясь F# Interactive. Просто пишу .fs-файлы и компилирую :)

Artem
04.09.2017
04:01:30
Ну, я вот пишу код, практически не пользуясь F# Interactive. Просто пишу .fs-файлы и компилирую :)
А у меня vs чего то не кушает fsi файлики, синтаксис не подсвечивается, влом разбираться, поэтому тоже компилю

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
Ребят, подскажите пожалуйста как проверить является ли екземляр определенным типом, чет не могу найти

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
То есть нужна упаковка в обжект обязательно?
Нет, дело не в этом. Проверка типа имеет смысл только когда ты работаешь obj.

Или если есть иерархия типов.

В том примере, который ты показал, 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
Кажись скоро можно будет форматировать код без проблем. https://twitter.com/kevin_c_ransom/status/904557903318736896
Жалко, что не в VScode. Кто там занимался прикручивпнием фантомаса? Может помочь чем?

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

Evgeniy
04.09.2017
08:36:06
Поясни примером задачи
type MessageType = | Global = 'g' | Private = 'p' | Online = 'o'

Как можно привести 'g' к MessageType.Global?

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

Igor
04.09.2017
08:41:40
Жалко, что не в VScode. Кто там занимался прикручивпнием фантомаса? Может помочь чем?
А я думал, что как раз туда добавят. В VS он же и так есть (или нет)?

Google
Evgeniy
04.09.2017
08:41:53
MessageType 'g' пробовал?
Я пробовал enum<MessageType>, но он хочет int.

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
Спасибо!

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
В XamDev давно забили на приветствия)? Сильно
Стараемся, насколько возможно, поддерживать дружелюбную атмосферу. А то нас и так мало. :)

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

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"

Привет!

Страница 300 из 772