@Fsharp_chat

Страница 234 из 772
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

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

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

Но лучше такими извращениями не заниматься.

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.

Statically Resolved Type Parameters. Есть вот такой пример. https://gist.github.com/gusty/b6fac370bff36a665d75
Это, кстати, не компилируется. foldArgs может вызываться только с тремя аргументами. А в примере вызывается и с бОльшим количеством - это и не компилируется.

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
Это оказалось сложнее, чем я думал. .__.

Но только как версию узнать?
А если fsi запустить, то что пишет в приветствии?

Friedrich
18.07.2017
08:03:59
И правда, не компилируется в F#4.1.
Фигасе, неужто сломали?

Evgeniy
18.07.2017
08:04:29
Фигасе, неужто сломали?
У меня на работе нет F#4.1, но я пробовал в sharplab.io

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
Предлагаю поднять вопрос снова.
https://github.com/fsharp/fslang-suggestions/issues/596

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

Evgeniy
18.07.2017
16:44:19
Дон очень быстр. Уже апрувнул :)
Твой шанс отправить PR в компилятор.

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 означает замыслы создать на этом месте нового персонажа.

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:04:32
Ну, логичным выглядит передать в find просто m.ChampionId.Equals

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