
Vasily
17.07.2017
20:43:22
Хотя можно,наверное,через квотейшны попробовать

Friedrich
18.07.2017
03:30:16

Klei
18.07.2017
04:06:15

Google

Friedrich
18.07.2017
04:07:03

Klei
18.07.2017
04:09:26

ect"==typeof module.exp
18.07.2017
06:00:57
Да тут сама задача по описанию не понятна

Vasily
18.07.2017
06:40:40
Выглядит так,что ему нужно вернуть функцию, которая возвращает список результатов вычисления функций

Evgeniy
18.07.2017
06:45:21
Доброе утро.
Теперь у нас есть онлайн логи.
http://telegrammy.net/group/Fsharp_chat
Возможно, не в самом удобном виде, но мне для этого почти ничего не пришлось делать. :)
Обновляются раз в день, кажется.

Friedrich
18.07.2017
06:47:39
Норм.

Evgeniy
18.07.2017
06:53:06
Норм.
Они достаточно тру, даже ссылочки для ответов работают.
Я добавил ссылку в описание. Пришлось пожертвовать Xamarin чатиком. :c

Andrew
18.07.2017
07:17:04

Google

Andrew
18.07.2017
07:17:10
Возвращаюсь к своему вопросу. В его изначальной формулировке я думаю решить его невозможно. Спрошу по-другому. Можно ли как-то универсализировать функции combine (скриншот выше). Например, сделать не 3, а одну универсальную?

Evgeniy
18.07.2017
07:18:11
Но ты этого не хочешь, поверь. ;)

Andrew
18.07.2017
07:19:10
SRTP - что это?

Evgeniy
18.07.2017
07:20:11
SRTP - что это?
Statically Resolved Type Parameters. Есть вот такой пример.
https://gist.github.com/gusty/b6fac370bff36a665d75
Но лучше такими извращениями не заниматься.

Vasily
18.07.2017
07:27:53

Andrew
18.07.2017
07:42:31
Задача - убрать копипаст. В более простом виде задача сформулирована - как вместо трех функций combine (см. скриншот выше) сделать одну универсальную? В более общем виде так:
let combine fn1 fn2 = {fn1} + {fn2}
{} - означает взять результат. Оператора такого нет, просто для наглядности.
Если fn1: int -> int -> int
а fn2: int -> int -> int -> int
то combine fn1 fn2
должно вернуть функцию пяти каррируемых аргументов int -> int -> int -> int -> int -> int
А результат выполнения этой функции - сумма результатов fn1 и fn2.

Evgeniy
18.07.2017
07:48:57

Andrew
18.07.2017
07:49:36
а как версию узнать?
мм.. не сразу понял идею. т.е. foldArgs (+) 2 3 возаращает функцию, в которую мы передаем еще аргумент. Тогда непонятно почему не компилируется

Evgeniy
18.07.2017
07:51:59
Ха!
И правда, не компилируется в F#4.1.
Потому что в 4.0 все нормально.

Andrew
18.07.2017
07:53:51
хм. внутри fsi в VSCode - не выполняется код. А мой fsc скомпилировал.
Но только как версию узнать?

Evgeniy
18.07.2017
07:54:02
fsc --version?

Google

Andrew
18.07.2017
07:56:56

Evgeniy
18.07.2017
08:00:53
Это оказалось сложнее, чем я думал. .__.

Friedrich
18.07.2017
08:03:59

Evgeniy
18.07.2017
08:04:29

Friedrich
18.07.2017
08:06:01
Я щас на домашней машине проверю.

Andrew
18.07.2017
08:06:35
fsi консольный выполнил. В VSCode не выполняет и в linqpad не выполняет

Friedrich
18.07.2017
08:07:39
А у меня чёт и в 4.0 не компилируется.
Хотя похоже, что в студии просто селектор версий языка сломан :)

Evgeniy
18.07.2017
08:12:14
У меня есть пример попроще.
https://pastebin.com/bfjFKrM5
И он работает в sharplab.io
В случае с SRTP еще и ошибку тяжело обнаружить. .__.

Anton
18.07.2017
08:22:03
@nevoroman а как там твой доклад про ТайпПровайдеры поживает ?

Roman
18.07.2017
13:21:03
@nevoroman а как там твой доклад про ТайпПровайдеры поживает ?
Ну, я уже примерно понимаю, что буду рассказывать. Сейчас перерабатываю под доклад один старый провайдер, который я когда-то делал для рабочей задачи, и заодно пытаюсь привести в приличный вид Python Provider - весьма неторопливо, правда, работа много времени ест.

Anton
18.07.2017
14:03:06
@nevoroman ого, очень жду, да и думаю не один я =)

Friedrich
18.07.2017
16:06:08
Компилятор мне предъявляет ворнинг за [<StructLayout>] :(

Evgeniy
18.07.2017
16:08:41

Friedrich
18.07.2017
16:10:02
https://connect.microsoft.com/VisualStudio/feedback/details/643668/f-structlayout-attribute-always-produces-a-possibleunverifiablecode-warning
> we get this is annoying, but we may not be able to fix this due to other higher prio bugs and work items we have

Google

Evgeniy
18.07.2017
16:10:13
2011!

Friedrich
18.07.2017
16:10:31
Какой-то Bill (Gates??) в 2011 году за нас всё решил.

Evgeniy
18.07.2017
16:10:58
Предлагаю поднять вопрос снова.

Friedrich
18.07.2017
16:11:30
Хорошо. Куда мы такое постим, в suggestions?

Evgeniy
18.07.2017
16:11:39
Да.

Friedrich
18.07.2017
16:37:33
Дон очень быстр. Уже апрувнул :)

Evgeniy
18.07.2017
16:44:19

Friedrich
18.07.2017
16:44:28
А ведь я собираюсь, да.

Evgeniy
18.07.2017
17:06:54
Это я так отмазываюсь.

Alexey
18.07.2017
17:37:26
Хочу парсить каналы и группы телеграмма. Есть несколько сот каналов и групп. Нужно чтобы система отлавливала сообщения, в которых есть совокупность ключевых слов и сохраняла эти сообщения.
Думаю какими нить облачными сервисами воспользоваться.
Как думаете, чем удобней воспользоваться для решения этой задачи?

Anton
18.07.2017
20:38:10
Всё же Data Science очень интересная вещица. Из Riot API узнал, что у ребят очень сильный разброс по Id у персонажей, и он не совпадает с их датами релиза. Наводит на мысль, что пропуск Id означает замыслы создать на этом месте нового персонажа.

Nikolay
18.07.2017
20:38:24
Вчера где-то 3 часа выгружало 250к сообщений

Anton
18.07.2017
20:38:57
Ух, чувствую статья на хабре моя будет крайне спойлерная для Riot'ов =)
Кстати особенность: в vscode в fsx файлах не нужно "руками" заставлять рисовать графики.

Nikolay
18.07.2017
20:39:39
По TensorFlowSharp годных статей вообще нет?

Anton
18.07.2017
20:39:59
В Rider'е нужно пинать отрисовку через методы.
Тем временем, Rider не умеет ставить в нужное место в проекте новые файлы, придётся лезть в proj руками.

Google

Anton
18.07.2017
20:52:25
Нужно таковой фич-реквест отправить в JetBrains.
Может кто на пальцах объяснить отличие неймспейсов от модулей в контексте F# ?
Заметил, что вроде работают одинакого... Но в чём соль?

Kirill
18.07.2017
20:59:49
По памяти: модуль — статический класс
в модуле можно создавать переменные, а в неймспэйсе — нет

Anton
18.07.2017
21:00:46
Хммм

Kirill
18.07.2017
21:00:50
но разница больше в подходах к структурирования, чем практическая

Anton
18.07.2017
21:01:18
Ну я сейчас работаю с модулем, код пишется наитивно, без лишней мысли о структурировании и всё работает =)

Kirill
18.07.2017
21:02:04
а если попробуешь неймспэйс, то сразу почувствуешь ненативность )
Хотя нет, про статику точно не помню, но модуль на уровень ниже, чем неймспейс по структуре

Anton
18.07.2017
21:11:51
хм, интересно даже, зачем они это разделили в действительности.
Ибо на мой взгляд - модуль то удобный.

Alexey
18.07.2017
21:14:12

Roman
18.07.2017
21:17:02
Насколько я помню, модуль - это статический класс, а неймспейс это неймспейс. В последнем нельзя объявлять функции и переменные.

Anton
18.07.2017
21:19:00
А я тем временем разобрался как в райдере пускать интерактивный F# (fsi)
Жопой чую, что я тут накостылял по не знанию F#. Пните, как написать по человечески =)
ChampionName= structedChampions|>List.find (fun c -> c.Id.Equals(m.ChampionId)) |> fun c ->c.Name

Roman
18.07.2017
23:03:55

Roman
18.07.2017
23:04:32
Ну, логичным выглядит передать в find просто m.ChampionId.Equals