@Fsharp_chat

Страница 296 из 772
Artemy
30.08.2017
10:33:47
всё же да, каким бы не был удобным и быстрым Rider - писать кодец на F# лучше пока в VSCode
Ну я так-то всё ещё VS предпочитаю. Т.к. с .NET Core не работаю, всё более-менее устраивает.

Anton
30.08.2017
10:34:02
тоже с .net core не имею дел

Artemy
30.08.2017
10:34:55
Ну тогда тоже можно в VS. Если, конечно, на Винде сидишь.

Anton
30.08.2017
10:34:57
кстати, а в F# есть анонимные типы, как в C#?

Google
Artemy
30.08.2017
10:35:05
Нету

Anton
30.08.2017
10:35:26
мол на ходу жахнуть Seq.iter (fun c -> {x=c.x;y=c.y}

Artemy
30.08.2017
10:35:43
Но там хотят ввести анонимные записи, которые будут совместими как раз с анонимными типами C#

Anton
30.08.2017
10:36:08
задумался о том, что мне лень писать тип на каждый мой мимолётный чих

вдруг мне этот тип понадобится ровно на 1 сортировку

Artemy
30.08.2017
10:36:24
https://github.com/fsharp/fslang-design/blob/master/RFCs/FS-1030-anonymous-records.md

Anton
30.08.2017
10:36:45
годнота!

Artemy
30.08.2017
10:37:19
задумался о том, что мне лень писать тип на каждый мой мимолётный чих
Да, сам думал об этом, когда запросы к БД делал.

Всё же кортежи — не самая удобная штука.

Anton
30.08.2017
10:37:40
я вот сейчас хочу сделать по быстрому тип для Chart.Table

но "по-быстрому" не выйдет

Artemy
30.08.2017
10:37:48
Особенно, когда там больше трёх элементов.

+ ещё некоторые SQL-провайдеры (в частности, FSharp.Data.TypeProviders) не умеют в записи.

Google
Artemy
30.08.2017
10:42:46
Вот такую штуку делал: AnonymousObject<_,_>(tskOfg.TaskID, tskOfg.OfferingID) |> NewAnonymousObjectHelper

Anton
30.08.2017
10:42:58
брр

Artemy
30.08.2017
10:43:15
Это конструирование анонимного объекта C#

И вот это провайдер понял.

Anton
30.08.2017
10:44:38
омг.[2]

Artemy
30.08.2017
10:44:56
Эта штука понадобилась, чтобы сгруппировать по двум полям сразу

Кортеж и записи оно не принимало

Вот так, если чуть подробнее: groupValBy tskOfg.Quantity.Value (AnonymousObject<_,_>(tskOfg.TaskID, tskOfg.OfferingID) |> NewAnonymousObjectHelper) into gr

Кортеж и записи оно не принимало
Не знало, как в SQL перевести, если точнее.

Так что анонимные записи будут очень полезны, осбенно, если будут компилироваться как анонимные типы.

Anton
30.08.2017
10:48:54
а я что-то туплю с тем, как создать Seq<key*value>

я попробовал банально вот так, но что-то не верный тип |> Seq.groupBy (fun r -> r.Country) |> Seq.map (fun _ -> fst,1 )

Anton
30.08.2017
10:51:00
оно возвращает Seq<(obj*obj->obj)*int>

Friedrich
30.08.2017
10:51:17
Artemy
30.08.2017
10:53:32
Да, похоже на правду

Anton
30.08.2017
10:53:52
похоже...

Friedrich
30.08.2017
10:54:28
Зачем ты это пишешь? ?

Anton
30.08.2017
10:54:56
парсер

Friedrich
30.08.2017
10:55:10
Не, зачем конкретно xxx |> fun x -> x?

Google
Friedrich
30.08.2017
10:55:15
Это бессмысленная конструкция.

Anton
30.08.2017
10:55:19
знаю

Friedrich
30.08.2017
10:55:21
Ок.

Anton
30.08.2017
10:55:22
это то бы тип глянуть

если скажешь, как можно без этого тип глянуть... буду благодарен!

Friedrich
30.08.2017
10:55:40
А, занятный трюк.

Artemy
30.08.2017
10:55:46
В VS можно

Friedrich
30.08.2017
10:55:58
Ну, я бы в переменную сложил кусок до Chart.Table, и тип переменной смотрел.

Artemy
30.08.2017
10:56:00
Там подсказки нормальные запилили

http://i.imgur.com/PNeJAbU.png

В Generic parameters указываются реальные типы, которые имеют место в данном контексте.

Anton
30.08.2017
10:59:21
@fvnever что такое Seq.collect ?

Artemy
30.08.2017
10:59:47
> For each element of the list, applies the given function. Concatenates all the results and return the combined list. Это List.collect, но суть та же.

Friedrich
30.08.2017
10:59:51
@fvnever что такое Seq.collect ?
https://loglist.net/quote/7922

Anton
30.08.2017
11:00:26
не разу им не пользовался

Friedrich
30.08.2017
11:00:35
Ты раньше не жил!

Anton
30.08.2017
11:00:38
можешь описать вкратце - шо это такое

ну, по пацански ?

Friedrich
30.08.2017
11:00:55
Ну, это чтобы список списков развернуть в плоский список.

Google
Anton
30.08.2017
11:01:15
эээм

а ещё более по-пацански

Friedrich
30.08.2017
11:01:29
Куда уж более.

Vlad
30.08.2017
11:01:32
Artemy
30.08.2017
11:01:35
Так на тип функции глянь внимательно

Anton
30.08.2017
11:01:39
List(list) -> list
а, понятно

оно тупо всё жахает в один лист?

все-все элементы всех списков?

Friedrich
30.08.2017
11:02:04
Ну, в seq.

Vlad
30.08.2017
11:02:12
да, сворачивает в 1

Anton
30.08.2017
11:02:15
т.е конкатанация листов?

Artemy
30.08.2017
11:02:47
Типа как map и concat, я так понимаю

Anton
30.08.2017
11:02:51
какая крутая хреновина!

Artemy
30.08.2017
11:03:10
Seq. map (fun x -> ...) |> Seq.concat

Anton
30.08.2017
11:03:12
как я раньше жил без неё!

так или иначе - Chart.Table не хавает =)

Artemy
30.08.2017
11:03:55
:D

Ты раньше не жил!

Anton
30.08.2017
11:04:26
блин, а я раньше руками листы сворачивал в один...

Artemy
30.08.2017
11:04:59
Иногда стоит пройтись по полному списку функций модуля. Можно много интересного найти.

Google
Artemy
30.08.2017
11:05:45
На том же Option, есть много полезных функций.

Anton
30.08.2017
11:06:29
афк

Artem
30.08.2017
11:13:08
Ребятки, по FSharpCharting есть где нибудь нормальные доки или примеры или у кого репозиторий лишний завалялся, по работе с данными из SqlDataProvider?

А то чето без примеров нормальных туговато идет

Artemy
30.08.2017
11:17:43
Ну FSharp.Charting работает с seq (то бишь с любыми коллекциями, наследующими IEnumerable). Каких-то особенных подходов для работы с данными из БД я там не помню.

Artem
30.08.2017
11:18:47
Да у меня просто лыжи не едут, не могу нормально данные сгруппировать чтобы Chart их скушал, больше в этом наверное проблема

Artemy
30.08.2017
11:20:44
Ну там та же тема, что и в случае с GoogleCharts, который выше приводился. Если данные сгрупированы, то их нужно привести к виду seq<('k * 'v)>

Тогда как группировки в query) возвращают seq<'k * ('v seq)>

Evgeniy
30.08.2017
11:40:41
Привет!

Alex
30.08.2017
11:41:18
привет!

я не совсем разработчик на F#, просто изучал его когда-то. но интересно посмотреть как он сейчас "живёт "

Vasily
30.08.2017
11:44:50
Пытается выжить

Friedrich
30.08.2017
12:44:19
Там какое-то интересное обсуждение завязалось: https://github.com/Microsoft/visualfsharp/issues/2406#issuecomment-325973299

Friedrich
30.08.2017
12:51:49
Ну, ребята рассматривают возможность как-то вкорячить тайп-провайдеры на неткор. Дон говорит, что смотрел API, и "investigation of building type providers using just .NET Standard 2.0 was very encouraging."

А в Rider тем временем всё чинят и чинят F#-специфичные баги (движение видно по баг-трекеру).

Igor
30.08.2017
13:22:20
Friedrich
30.08.2017
13:22:50
Порядок файлов собираются делать? :)
Нет, про такое пока не слышно. А есть ссылка на задачу? Я бы подписался.

Кто хоть чинит, страна должна знать своих героев))
Основной человек, который занимается F# — это Eugene Auduchinok.

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