@Fsharp_chat

Страница 77 из 772
Roman
26.04.2017
17:18:56
Vasily
26.04.2017
17:19:05
Ну и создавать надо в файлах выше по списку

Roman
26.04.2017
17:19:20
Vasily
26.04.2017
17:19:23
'a->

Google
Roman
26.04.2017
17:19:46
'a->
можешь набросать? Я не понимаю как это будет работать

Vasily
26.04.2017
17:20:19
Мне очень не хочется, чтобы сделали определение типов не по порядку. Код будет в разы труднее читать

Nikolay
26.04.2017
17:21:08
А как явно задать Record, который я создать хочу?

Roman
26.04.2017
17:21:11
надеюсь до порядка файлов не дойдет.

Vasily
26.04.2017
17:21:52
Я с телефона :(

Some v

Roman
26.04.2017
17:22:18
А как явно задать Record, который я создать хочу?
type MyRecord = { value: sometype } {MyRecord.value = Sometipe()}

Schvepsss
26.04.2017
17:22:59
Всем привет! Никто случаем не сталкивался с ситуацией, когда UWP дев-билды не ставятся на телефоны тестировщиков?

Vasily
26.04.2017
17:23:47
Released http://FSharp.NET .Sdk v1.0.3 The new fsproj now works with others msbuild (.NET FW and #mono) #fsharp https://github.com/dotnet/netcorecli-fsc/releases/tag/v1.0.3

Akhmed
26.04.2017
17:23:47
Вот вопрос в чате F# разработчиков прозвучал как обидно с учетом того что UWP до сих пор не поддерживает F# ))))

Schvepsss
26.04.2017
17:25:18
Вот вопрос в чате F# разработчиков прозвучал как обидно с учетом того что UWP до сих пор не поддерживает F# ))))
я долго думала в каком чате спросить, тут показался одним из самых дружественных и близких к теме :)

Google
Schvepsss
26.04.2017
17:25:35
хотя наверно пойду ещё в ксамарин схожу

Roman
26.04.2017
17:25:46
Match v with |?: string as s ->Some s
static member inline Test (someId: ^a) = match someId with | :? string as s -> Some s | :? int as i -> Some i | :? BigInt -> Some i | _ -> None как-то так?

Akhmed
26.04.2017
17:26:02
А что за ошибку выдает?

При попытке установки?

Schvepsss
26.04.2017
17:27:04
А что за ошибку выдает?
Симптомы: переводим телефон в режим developer или sideload, закачиваем appxbundle на трубку, инсталируем - и ничего не происходит, хоть минуту жди, хоть час.

Akhmed
26.04.2017
17:27:32
Виснет или не запускается вообще?

Vasily
26.04.2017
17:27:55
Главный вопрос-везде себя так ведет?

Второй вопрос -после каких изменений викодовой базе/процессе сборки это началось?

Vasily
26.04.2017
17:29:11
Ну а дальше кропотливый анализ

Schvepsss
26.04.2017
17:29:23
https://t.me/uwp_ru
ооо, ребят :) вы супер! Спасибо!

Nikolay
26.04.2017
17:30:15
static member inline Test (someId: ^a) = match someId with | :? string as s -> Some s | :? int as i -> Some i | :? BigInt -> Some i | _ -> None как-то так?
This runtime coercion or type test from type 'a to string involves an indeterminate type based on information prior to this program point. Runtime type tests are not allowed on some types. Further type annotations are needed.

Nikolay
26.04.2017
17:31:11
Не, это фигня

Roman
26.04.2017
17:31:33
Не, это фигня
Ага. Длеай нормальный DU)

Nikolay
26.04.2017
17:31:36
Зачем нам тогда статическая типизация?)

Vasily
26.04.2017
17:31:41
Тогда du

На самом деле есть трюк, чтобы заработало

Тсапалис недавно показывал

Google
Evgeniy
26.04.2017
17:32:56
TypeShape?

Nikolay
26.04.2017
17:33:06
Я хочу, чтобы выглядело так: let a = someFunc 123 let b = someFunc "123" С du я так понимаю не получится

Vasily
26.04.2017
17:33:27
Вместо a->some a надо a-> option r

Evgeniy
26.04.2017
17:34:12
Vasily Царьпалис! Или цареборец.

Vasily
26.04.2017
17:34:17
Укажи явно тип возвращаемый как b , например

Evgeniy
26.04.2017
17:34:18
Надмозг, да. :)

Vasily
26.04.2017
17:35:12
Vasily Царьпалис! Или цареборец.
Ипать мой лысый череп.Но товарищ реально крут.У него классный стиль мышления

Evgeniy
26.04.2017
17:35:38
Ага.

Летучая
26.04.2017
17:35:40
Бтв девю на увп, не сталкивался.

Schvepsss
26.04.2017
17:36:19
Лучше в С# Тут рили как троллирование выглядит
я туда вообще боюсь писать, вы там все какие-то недобрые))

Vasily
26.04.2017
17:37:13
О чем вы?
Nessos streams, например

Летучая
26.04.2017
17:37:23
я туда вообще боюсь писать, вы там все какие-то недобрые))
Да вроде после репрессий только добрые остались (кроме админов)

Roman
26.04.2017
17:37:31
Vasily
26.04.2017
17:37:54
Пока в код въедешь,аж употеешь

Schvepsss
26.04.2017
17:38:03
Да вроде после репрессий только добрые остались (кроме админов)
ааа, тогда супер :) благодарю. Не видела, что были репрессии

Vasily
26.04.2017
17:38:34
Причем никакой перегрузки операторов

Nikolay
26.04.2017
17:39:13
https://gist.github.com/Dolfik1/fa70485b8b4d88e231c177947e275f6c

Google
Nikolay
26.04.2017
17:39:18
Короче ужас)

Vasily
26.04.2017
17:39:21
Все на чистых языковых конструкциях

Короче ужас)
Я бы шел другим путем

Klei
26.04.2017
17:41:10
Roman
26.04.2017
17:41:11
Вместо a->some a надо a-> option r
т.е. static member inline Test (someId: ^a):option<'r> = match someId with | :? string as s -> Some s | :? int as i -> Some i | :? BigInt -> Some i | _ -> None ?)

Vasily
26.04.2017
17:41:37
Угу

Nikolay
26.04.2017
17:41:45
А что делает Helpers.toString?
let inline toString arg = arg |> Option.map string |> Option.defaultValue ""

т.е. static member inline Test (someId: ^a):option<'r> = match someId with | :? string as s -> Some s | :? int as i -> Some i | :? BigInt -> Some i | _ -> None ?)
This runtime coercion or type test from type 'a to string involves an indeterminate type based on information prior to this program point. Runtime type tests are not allowed on some types. Further type annotations are needed.

Evgeniy
26.04.2017
17:42:51
@Dolfik Трюк! https://hastebin.com/idebolawok.fs Осторожно! Не использовать в продакшене!

Nikolay
26.04.2017
17:44:07
match box someId with
На int as i: This expression was expected to have type 'string' but here has type 'int'

Летучая
26.04.2017
17:44:56
ваще самый норм вариант эт перегрузки же

Klei
26.04.2017
17:46:56
Evgeniy
26.04.2017
17:47:39
@neftedollar Лишняя нагрузка на голову при чтении кода. И сообщение об ошибке стремное.

Летучая
26.04.2017
17:47:50
Кстати, есть в F# какой-нибудь аналог nameof из C#? Чтоб однострочный INotifyPropertyChanged написать.

Evgeniy
26.04.2017
17:49:31
@Worldbeater Еще не сделали. :(

https://github.com/fsharp/fslang-design/blob/master/RFCs/FS-1003-nameof-operator.md

Roman
26.04.2017
17:51:49
ваще самый норм вариант эт перегрузки же
type private MyUnion = | Int of int | String of string | BigInt of int64 type Util = Util with static member ($) (Util, x:int) = Int(x) static member ($) (Util, x:int64) = String(x) static member ($) (Util, x:string) = BigInt(x) let private doWork = function | Int x -> CharpClass.Method(x) //int перегрузка | String x -> CharpClass.Method(x) //string перегрузка | BigInt x -> CharpClass.Method(x) //int64 перегрузка // мб можно как-то короче let inline Test x = Util $ x |> doWork и нет копипасты

Google
Nikolay
26.04.2017
17:53:28
ваще самый норм вариант эт перегрузки же
Перегрузки создают копипасту)

С du ужасно получается: let a = { Types.MessageArgs.ChatId = Types.IntOrString.I 32 }

Ну можно сократить до: let a = { ChatId = IntOrString.I 32 }

Но всё равно стрёмно

Nikolay
26.04.2017
17:55:33
Нужно знать, что у тебя значит I, S и I64

почему?
Перегнул)

Roman
26.04.2017
17:55:52
Nikolay
26.04.2017
17:56:05
Evgeniy
26.04.2017
17:56:29
Мне кажется, что это немного странно, что ChatId -- это или int, или string.

Хм.

Klei
26.04.2017
17:56:50
А этот тип в случае string что содержит?

Nikolay
26.04.2017
17:57:00
С перегрузками плохой вариант, если у тебя будет например 2 аргумента

А этот тип в случае string что содержит?
Unique identifier for the target chat or username of the target channel (in the format @channelusername)

Evgeniy
26.04.2017
17:57:51
Может их разделить в Record?

Два поля.

Одно с id, другое с username.

Nikolay
26.04.2017
17:58:42
Одно с id, другое с username.
В целом норм вариант, но не очевидно будет

+ даст возможность не указывать chat_id, а он обязательный

Итого: полтора часа обсуждаем, как сделать красиво какую-то фигню :D

Klei
26.04.2017
18:00:14

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