
Roman
18.07.2017
23:05:53

Anton
18.07.2017
23:06:44
Потестирую всё это на себе и девушке, поспрашиваю что ей интересно видеть в приложении, напишу таковое, напишу статейку об этом, потом напишу приложение под iOS и Android и тоже напишу про это =)
Пока что, уже рисую на XPlot статистику по лвл моих персонажей =)
Итого и в F# лучше разберусь, и с пакетом FSlab тесно поработаю.

Google

Anton
18.07.2017
23:08:47
@nevoroman спасибо

Roman
18.07.2017
23:09:52
Круто

Anton
18.07.2017
23:10:19
У них в этом моменте очень кривое API. Пришлось поприседать.
В общем есть пару идей. Буду потиху реализовывать. Глядишь что годное сделаю =)
@nevoroman не, твоя фишка не сработала, оно в эксепшен падает
Ну и логично впринципе - ему же нужно знать с чем сравнивать

Roman
18.07.2017
23:34:48
Кстати, график очевидно не лучшая визуализация в этом случае, логично взять какой-нибудь Pie или Bar Chart :)

Anton
18.07.2017
23:40:06
Да это только набросок на коленке. Буду пилить и придумывать всякое, устраивать опросы.
В ход пойдут не только графики F#, но и R
И в целом попробую по максимуму выжимать из Fslab.

Google

Anton
18.07.2017
23:44:57
Глядишь смогу потом в Минске на каком митапчике выступить ^_^

Evgeniy
19.07.2017
03:18:22

Nikolay
19.07.2017
05:13:33

Anton
19.07.2017
07:16:26
@gsomix ты скажи лучше, как мне отрефакторить мой поиск и выбор строки, что бы привести в порядок код. =)

Evgeniy
19.07.2017
07:16:56

Anton
19.07.2017
07:17:01
А конкретно - этот
ChampionName= structedChampions|>List.find (fun c -> c.Id.Equals(m.ChampionId)) |> fun c ->c.Name
Это пока то, на что хватило моих знаний и я прям чувствую что это сильно быдлокод.

Vasily
19.07.2017
07:19:48
Ну нужно больше кода

Aleksander
19.07.2017
07:19:53
а ты уверен что всегда найдешь чемпиона?

Anton
19.07.2017
07:20:10
Уверен

Vasily
19.07.2017
07:20:25
Пока, конечно, выглядит странно
что за m, кстати?

Anton
19.07.2017
07:21:24
Сейчас на работу еду, а этот код дома. Показать всё смогу только вечером. ='(
Если коротко, я маплю один лист на другой, потому что в первом есть только Id чемпиона, а мне нужны имена для юзер-френдли графика
Связку Id&Name я получаю через другой API и связываю это дело в моей dto

ect"==typeof module.exp
19.07.2017
07:52:10
подксажите а как обхявить свой тип эвивалентный массиву со строго фиксированным количеством элементов?
типа
type MyArray = int array(8)

Evgeniy
19.07.2017
07:56:57

Google

Evgeniy
19.07.2017
07:59:08
Все-таки это некоторый вид зависимой типизации, а в F# параметризовать тип числовым значением можно только с помощью провайдеров.

Anton
19.07.2017
07:59:37
@fvnever неужели и ты не знаешь как решить мой вопрос с рефакторингом ?

ect"==typeof module.exp
19.07.2017
07:59:56
https://fslang.uservoice.com/forums/245727-f-language/suggestions/5670163-fixed-length-arrays

Friedrich
19.07.2017
08:00:01

Anton
19.07.2017
08:00:37
Но код есть выше =)

Friedrich
19.07.2017
08:01:05
Не вижу.

Anton
19.07.2017
08:02:13
угу

Friedrich
19.07.2017
08:03:38
Ну, во-первых, тут странно, что ты пользуешься Equals вместо =.
Во-вторых, я лично не люблю писать ... |> fun x -> ..., и поэтому я бы переписал так:
let champion = champions |> List.find (fun c -> c.Id = m.ChampionId)
let championName = champion.Name

MrErsh
19.07.2017
08:03:38

Anton
19.07.2017
08:04:10
@fvnever оно мне ругалось, что int не умеет в ==

Friedrich
19.07.2017
08:04:16
Что.

Anton
19.07.2017
08:04:23
приду домой вечером и покажу

Friedrich
19.07.2017
08:04:32
Хорошо.

Evgeniy
19.07.2017
08:04:35

Friedrich
19.07.2017
08:05:02

Anton
19.07.2017
08:05:30
Тааааак, я кажется начинаю понимать.
@fvnever ну и не периписал бы, потому что я там формирую объект
это кусок из Seq.map

Google

MrErsh
19.07.2017
08:06:56

Friedrich
19.07.2017
08:07:14

Anton
19.07.2017
08:07:22
ок =)
вечером скину фул
Да, нужно было репу завести на гитхабе, что-то я сморозил.

Evgeniy
19.07.2017
08:08:00
Есть еще более изощренная технология, но тоже без массивов.
https://github.com/Lleutch/ConstraintTP
Мне и то, и другое кажется плохими решениями. Если только поиграться. :)
Если что-то очень сложно сделать с помощью языке, то лучше и не пытаться.

Oleg
19.07.2017
11:19:21
Иммутабельные очереди и прочие структуры: смотрите Крис Окасаки. Например, если нужно realtime поведение, то у него есть алгоритмы/структуры с амортизацией

Alexey
19.07.2017
11:59:37
Что значит иммутабельные?

Evgeniy
19.07.2017
12:03:11
Что значит иммутабельные?
Это от английского immutable, неизменяемые.
https://fsharpforfunandprofit.com/posts/correctness-immutability/

Alexey
19.07.2017
12:03:34
Благодарю!

Anton
19.07.2017
12:10:10
Подцеплен!

Evgeniy
19.07.2017
12:10:57

Anton
19.07.2017
12:11:23
В моём уютном Rider'е всё подцеплено =)

Evgeniy
19.07.2017
12:11:46

Anton
19.07.2017
12:12:24
Вопрос был про работу R в F#. И я утверждаю - работает на ура.

Evgeniy
19.07.2017
12:12:51

Anton
19.07.2017
12:12:57
А

Google

Anton
19.07.2017
12:13:11
иногда русский запутывает

Evgeniy
19.07.2017
12:13:11
Я недавно пытался настроить RProvider в Azure Notebooks.

Anton
19.07.2017
12:15:03
Azure Notebooks забавная вещица - но всё же лагающая. Пока что предпочту писать кодец у себя в IDE
Ну и итерпретированность меня не забавляет. Запускать мой кодец по F5 весь и полностью как-то для меня по проще.
но это ИМХО
Я вчера побаловался минут 15 с fsi в Райдере и забил =)
Но нашел интересный момент: оно в fsi не требует у Xplot и R либ вызова метода на рендер в конце.

Evgeniy
19.07.2017
12:17:53

Anton
19.07.2017
12:17:53
для кода собранного в конце следует писать Chart.Show или R.print
и обидно, что почти нигде не пишут про R.print и Chart.Show
я по чистой случайности на это наткнулся.
попривыкали в своих fsx писать =)
выполняя через fsi

Evgeniy
19.07.2017
12:20:35
Привет!

Anton
19.07.2017
12:20:47
Вот на сайте FSharpRProvider ни слова про R.print