@Fsharp_chat

Страница 174 из 772
Nikolay
29.05.2017
09:21:15
Ищи тогда раннер)

Должен быть

Roman
29.05.2017
09:21:45
я добавил Expecto.xunit и добавил xunit раннер, до закрытия студии все было ок. Но потом ничего не работало =(

Evgeniy
29.05.2017
09:22:32
@neftedollar Ишшью завел?

Google
Roman
29.05.2017
09:22:33
Expecto.VisualStudio.TestAdapter ой) Нашел

@neftedollar Ишшью завел?
я хз куда. в xunit или в Expecto.xunit

@neftedollar Ишшью завел?
https://github.com/0x53A/Expecto.Xunit#fixing-no-tests-found оказывается я невнимателен

Pawel
29.05.2017
09:33:28
какие профиты даёт expecto в сравнении с традиционным nunit ?

Evgeniy
29.05.2017
09:36:45
> tests-as-values in easy-to-read F#

Pawel
29.05.2017
09:37:40
это я прочитал тоже) остаётся понять что сие значит

Evgeniy
29.05.2017
09:41:11
Не знаю, как это можно иначе трактовать. Ну, тесты — это значения, с которыми можно работать как со значениями: передавать, фильтровать, группировать. Меня больше привлекает интеграция с FsCheck, BenchmarkDotNet и Unquote.

Evgeniy
29.05.2017
09:51:10
А у нас в слэке настоящая lenadroid.

Roman
29.05.2017
09:53:25
А у нас в слэке настоящая lenadroid.
Я ей в твиттер писал, типа присоединяйся. А она не ответила(

А у нас в слэке настоящая lenadroid.
Ну ты же что-то писал!

Evgeniy
29.05.2017
09:58:03
@neftedollar Что?

Roman
29.05.2017
09:58:46
@neftedollar Что?
Не знаю, у меня очень долго висела табличка что ты что-то пишешь. Я был очень заинтригован

Google
Evgeniy
29.05.2017
09:58:52
Неа.

Летучая
29.05.2017
10:00:10
По мне так fable это часть f# а мы сообщество)
Ну тада мб завезу вечером варианты на бузинес-линч.

Nikolay
29.05.2017
10:00:52
Кстати, давайте свои идеи по красивой обёртке над Telegram Bot Api :)

Vasily
29.05.2017
10:04:22
computation expression

типа telegram{ let! statuses=api.getStatuses}

Roman
29.05.2017
10:07:41
Vasily
29.05.2017
10:08:11
Ну тут можно url еще скрывать типа

Так это ж асинк
вообще let! не только к асинку имеет отношение

Как и return

Roman
29.05.2017
10:09:06
Ну тут можно url еще скрывать типа
Это можно сделать и если передать урл первым параметром, а потом карировать.

Как и return
Как и yield! И т.д. И та

Vasily
29.05.2017
10:09:32
Eue

Угу

Roman
29.05.2017
10:10:49
Ну тут можно url еще скрывать типа
И урл может храниться в api-объекте

Vasily
29.05.2017
10:11:13
Ну я просто в качестве безумной идеи :)

Roman
29.05.2017
10:11:44
Кстати, давайте свои идеи по красивой обёртке над Telegram Bot Api :)
Отдельную ф-цию parse которая бредится к команде, например

Roman
29.05.2017
10:16:14
Насчёт parse не понял
ну типа let parse : (string -> 'а) subscribe (myParse:string -> Commands) (handler : Commands -> Unit)

Google
Roman
29.05.2017
10:16:28
Как вариант)

Nikolay
29.05.2017
10:17:13
Да там вообще наверное принцип надо пересмотреть, но я в F# к сожалению пока слишком слаб :(

Roman
29.05.2017
10:17:21
И дефолтным версию parse как parse str = str

Vasily
29.05.2017
10:18:22
А ссылку на код можно, кстати?

Nikolay
29.05.2017
10:18:57
https://github.com/Dolfik1/Funogram

У меня просто там дикие DU есть, на 20 полей

Nikolay
29.05.2017
10:20:35
Но у меня в DU не получилось десериализовать

Вообще хз как это работать должно

Vasily
29.05.2017
10:21:37
type ChatId = | ChatIdInt of int | ChatIdLong of int64 | ChatIdString of string

я бы всегда стрингом передавал

token: string, chatId: Types.ChatId, text: string, ?parseMode: Types.ParseMode, ?disableWebPagePreview: bool, ?disableNotification: bool, ?replyToMessageId: int64, ?replyMarkup: Types.Markup

просится в отдельный тип

Nikolay
29.05.2017
10:24:56
я бы всегда стрингом передавал
Зачем? Стринг достаточно редко нужен в данном кейсе

Если ты с каналом работаешь

Если с юзером int, если с чатом int64

Vasily
29.05.2017
10:25:21
Зачем? Стринг достаточно редко нужен в данном кейсе
Тогда всегда int64, а там где надо, прямая конвертация

Nikolay
29.05.2017
10:25:49
Vasily
29.05.2017
10:26:26
Предлагаю выносить классы типа ChatMember с методами Kick,Ban etc

Google
Vasily
29.05.2017
10:27:09
Точнее, есть класс чат, как я понимаю, куда должен передаваться токен и чатайди

А бан , кик этц - передавать по одному параметру

Т.е. идея такая - создаем для каждого чата объект, в нем методы, специфичные для чата

Nikolay
29.05.2017
10:29:29
Мне кажется это не совсем по-функциональному :) Либо я не понимаю тебя

Vasily
29.05.2017
10:29:51
Ну то,что сейчас, выглядит избыточно

Минутку

Nikolay
29.05.2017
10:30:22
Ну то,что сейчас, выглядит избыточно
Если комментарии убрать, получится в два раза меньше строк

Vasily
29.05.2017
10:32:50
type Chat(chatId:int,token:string)= member this.GetChatAdministrators()=Telegram.GetChatAdministratorsAsync(token, chatId) |> Async.RunSynchronously

Ну или тут просится computation expression тогда

По типу Seq

chat.init

И потом методы расширения типа Chat.kickMember etc

Хммм... кстати, интересная идея

Отдельный рекорд ChatParameters

module Chat= let getAdmins parameters = Telegram.GetChatAdministratorsAsync(parameters.token, parameters.chatId) |> Async.RunSynchronously parameters|>getAdmins

Типа такого

Кода будет в разы меньше, по идее

Просто сейчас выглядит как ООП код в синтаксисе F#

в целом, наверное, найду время запилить пару пулл реквестов

Nikolay
29.05.2017
10:46:06
Кода будет в разы меньше, по идее
На самом деле большинство кода здесь записи и комментарии

Google
Nikolay
29.05.2017
10:46:28
Если оставить например только Async методы, убрать комментарии, то количество кода в разы уменьшится

А вообще, когда писал вдохновлялся Http в FSharp.Data

Pawel
29.05.2017
10:48:04
Но у меня в DU не получилось десериализовать
https://gist.github.com/fpawel/e9170e9ce0c4e6a4a913d0c73a149a9e

Nikolay
29.05.2017
10:51:46
https://gist.github.com/fpawel/e9170e9ce0c4e6a4a913d0c73a149a9e
А он умеет DU с несколькими записями десериализовать?

И snake_case?

Pawel
29.05.2017
10:51:54
да

имена мапятся один в один, кастомизация json на мой взгляд не нужна и запутывет. Но если бы мне было нужно - сделал бы

то есть как назвал пропертю, такой и будет json

Roman
29.05.2017
10:54:40
Кстати, раз уж у нас есть такой чудный чат, поюзаю-ка я его в своих интересах. Коллеги, я в поисках интересной темы для следующего DotNext'а и других конференций! Рассказывать одно и то же мне претит, так что я открыт к вашим предложениям - разбор чего в F# вам было бы интересно послушать? На текущий момент ближайшее, что я планирую подготовить - это доклад про кишки провайдеров типов с разбором того, как их разрабатывать и разбором кода какого-нибудь специально для этого дела написанного провайдера. Если у вас есть интересные предложения для этого доклада, кейсы, или какой-нибудь забавный провайдер, который можно доработать и потом рассказать об этом - welcome!

Nikolay
29.05.2017
10:55:42
Nikolay
29.05.2017
10:57:10
Ещё сейчас модно .Net Core :)

Pawel
29.05.2017
10:57:35
Ну писать имена переменных в F# через snake_case такое себе дело
да пофигу акие там имена,, лишь бы они везде были одинаковыми. Иначе путаница

Roman
29.05.2017
10:57:39
Data mining, машиннное обучение
Было же уже частично. Но когда появится в моей карьере новый-интересный кейс - наверняка расскажу, а пока затишье

Nikolay
29.05.2017
10:58:18
Roman
29.05.2017
10:58:39
Ещё сейчас модно .Net Core :)
Возможно, но материала маловато. Да и все эти доклады про .NET Core зачастую состоят из "прикиньте, на Линуксе дотнет работает!" и вообще грешат гигантским количеством пересечений друг с другом. Ну его

Roman
29.05.2017
11:00:48
а что было, можно ссылку?
Два доклада на дотнексте - один не про F#, но с его использованием, другой про F# целиком. Второй несколько посильнее, но достаточно простой и попсовый - все-таки совсем мало аудитории, которая шарит в F# и ML на дотнексте. Машинное обучение на платформе .NET https://www.youtube.com/watch?v=dWxsy8pxWws F# во славу Data Science https://www.youtube.com/watch?v=6r9aDfEI71U

Nikolay
29.05.2017
11:01:34
Возможно, но материала маловато. Да и все эти доклады про .NET Core зачастую состоят из "прикиньте, на Линуксе дотнет работает!" и вообще грешат гигантским количеством пересечений друг с другом. Ну его
По .Net Core интересно было бы послушать, что в F# с приходом .Net Core поменялось, например как они quotations перепилили, интересно было бы сравнение производительности .Net Framework vs .Net Core (хотя это ещё рановато, пока он сырой)

Pawel
29.05.2017
11:02:26
Кстати, раз уж у нас есть такой чудный чат, поюзаю-ка я его в своих интересах. Коллеги, я в поисках интересной темы для следующего DotNext'а и других конференций! Рассказывать одно и то же мне претит, так что я открыт к вашим предложениям - разбор чего в F# вам было бы интересно послушать? На текущий момент ближайшее, что я планирую подготовить - это доклад про кишки провайдеров типов с разбором того, как их разрабатывать и разбором кода какого-нибудь специально для этого дела написанного провайдера. Если у вас есть интересные предложения для этого доклада, кейсы, или какой-нибудь забавный провайдер, который можно доработать и потом рассказать об этом - welcome!
про F# вот что интересно и показательно. Взять типичную область применения net (виндовз десктоп WF, WPF, asp net mvc 4) и показать на примере реального энтерпрайзного проекта на C# и F#, какие профиты даёт F#, что код короче и понятнее получается

Nikolay
29.05.2017
11:03:06
Оу, нет, я ошибся, quotations они не трогали

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