@Fsharp_chat

Страница 586 из 772
Alexander
01.06.2018
16:46:57
Лол

Friedrich
01.06.2018
16:47:04
У JVM ты можешь куда больше вещей настроить - сколько ты хочешь отдать памяти, какие пиковые нагрузки, сколько процентов должно быть занято и т.п. Это важно для оптимизаций под конкретную нагрузку. ГЦ, который пытается услужить всем, всегда будет хуже настроенного и оттюненного ГЦ.

Так что ручки нужны, я считаю. И их нам добавят.

Google
Friedrich
01.06.2018
16:47:58
Просто gc.cpp уже никто не может прочитать, так что пришлось внедрять проект по его полной замене, и только потом уже делать ручки :)

Roman
01.06.2018
16:48:20
Так что ручки нужны, я считаю. И их нам добавят.
Нуок. Но если хайлоа и без этого пишется, то отсутствие ручек у ГЦ это ну даже не минус)

Но, да, было бы не плохо, согласен

Friedrich
01.06.2018
16:48:49
Нуок. Но если хайлоа и без этого пишется, то отсутствие ручек у ГЦ это ну даже не минус)
А вот не пишется. Нам для hlcup бы тогда пара ручек тоже не помешала!

Friedrich
01.06.2018
16:49:51
Метрики нагрузки тоже, конечно, анализировать надо уметь. То есть это не только вопрос ручек, но и вопрос профилировщиков, и навыков разработчика тоже. Но ручки бы пригодились.

Friedrich
01.06.2018
16:51:41
Я думаю у нас ручки ещё и value и referense типы
Да, это один из факторов. Но не самый важный, наверное. У джавы, например, куда более развитой escape analysis, который умеет превращать reftype в value type в горячих методах.

Для массивов не сработает, но для мест, где хочется микрооптимизировать — вполне.

Но это, безусловно, важно, если ты собираешься портировать ГЦ из жавы. Его придётся перетюнивать под наши профили нагрузки, которые от жавошных отличаются.

Ivan
01.06.2018
20:41:21
В целом, можно написать тип с opExplicit
Только что то не совчем он потом в Rider работает, в студии не видно

Google
Ivan
01.06.2018
20:47:06
Кстати посмотрите на новый флаг в .NET Core 2.1. Кажется RyU Git теперь держит двухстадийную компиляцию

Evgeniy
01.06.2018
21:27:42
*RyuJIT

Andrew
01.06.2018
21:40:29
Всем привет Еще такой вопрос, возможно ли как то привести вложенный union case к более абстактному? Типо у меня что то такое type Something = A and A = | B of C | ... and C = | D of string * obj | ... Можно как то привести D к A чтобы компилятор не ругался?

Vasily
01.06.2018
22:18:59
A.B.D по идее

Ivan
02.06.2018
00:06:41
Evgeniy
02.06.2018
07:17:35
Привет.

Летучая
02.06.2018
07:19:31
Здравствуйте! Есть ли синтаксический сахар для кoмбинирoвания двух и бoлее Option? Чтoбы, например, на выхoд пoлучить какoй-нибудь 'T option * 'U option вместo: match firstOption with | Some first -> match first.Next with | Some next -> invoke first next | None -> () | None -> () Есть Option.bind (fun first -> first.Next), нo нужнo вернуть и first, и next как-нибудь красивo.

Roman
02.06.2018
07:19:33
Hi, как дела?

Летучая
02.06.2018
07:20:57
Hi, как дела?
? Привет!

Vasily
02.06.2018
07:21:10
У Влашина почитай

Летучая
02.06.2018
07:34:04
Maybe monad
А нет ли готовых годных билдеров для Option? Дело в том, что здесь целая библиотека на них построена, и нужно повзаимодействовать.

Evgeniy
02.06.2018
07:34:41
@sergey_tihon Кажется, здесь нужна твоя помощь. https://github.com/fsprojects/FSharpx.Extras/pull/360#issuecomment-388575151

Летучая
02.06.2018
07:55:40
let foobar (firstOpt:First option): (First*Next) option = maybe { let! first = firstOpt let! next = first.Next return first, next }
Красивo. Именнo тo, чтo нужнo! Спасибo. Нужен был прoстo дoступ сразу к двум значениям без oгрoмнoй влoженнoсти. Через maybe { } гoраздo приятнее с Option рабoтать :P

Vasily
02.06.2018
08:01:45
Ещё есть defaultArg

Google
Vasily
02.06.2018
08:01:57
И Option.bind

Без всяких сторонних библиотек

Evgeniy
02.06.2018
08:02:48
И Option.bind
Некрасиво.

Vasily
02.06.2018
08:03:24
Кстати, вопрос про кортежи

Mikhail
02.06.2018
08:03:55
Некрасиво.
Можно ли мечтать о тайпклассах в F#, или лучше смириться?

Vasily
02.06.2018
08:04:01
Если кортеж из трёх элементов,что вернёт snd

Evgeniy
02.06.2018
08:04:20
Mikhail
02.06.2018
08:04:30
Просто спросил

Тайпклассы - это красиво

Vasily
02.06.2018
08:04:44
Спросил он просто

Тут должна быть картинка из Простоквашино

Evgeniy
02.06.2018
08:05:12
Просто спросил
Какие проблемы тебе нужно решить?

Vasily
02.06.2018
08:06:52
Ошибку компиляции.
Печаль. Было бы красиво, если бы возвращал оставшийся кортеж

Mikhail
02.06.2018
08:07:08
Какие проблемы тебе нужно решить?
Отсутсвие полиморфного map, bind

Evgeniy
02.06.2018
08:07:43
Отсутсвие полиморфного map, bind
https://github.com/fsprojects/FSharpPlus

Для стандартных типов и своих собственных проблема решается.

Mikhail
02.06.2018
08:09:18
Evgeniy
02.06.2018
08:11:00
В F#5, когда починят SRTP, можно будет и для чужих типов решить.

Но тайпклассы не планируются.

Google
Летучая
02.06.2018
08:12:06
@gsomix, а OptionBuilder обычно сами пишут или есть какой-то пакет, который можно установить?

Evgeniy
02.06.2018
08:12:39
@gsomix, а OptionBuilder обычно сами пишут или есть какой-то пакет, который можно установить?
FSharp.Extras и ExtCore. Но, кажется, их до сих пор не запаковали под нетстандарт. :(

Летучая
02.06.2018
08:13:12
FSharp.Extras и ExtCore. Но, кажется, их до сих пор не запаковали под нетстандарт. :(
Вот в FSharp.Extras он только в тестах поиском по исходникам находится.

Evgeniy
02.06.2018
08:13:38
Вот в FSharp.Extras он только в тестах поиском по исходникам находится.
https://github.com/fsprojects/FSharpx.Extras/blob/master/src/FSharpx.Extras/ComputationExpressions/Monad.fs#L91

Friedrich
02.06.2018
08:18:08
FSharp.Extras и ExtCore. Но, кажется, их до сих пор не запаковали под нетстандарт. :(
FSharp.Extras уже портировали, надо только перепубликовать.

Evgeniy
02.06.2018
08:19:08
FSharp.Extras уже портировали, надо только перепубликовать.
Да, я в курсе. Выше написал Сергею о проблеме.

Летучая
02.06.2018
08:20:45
https://github.com/jack-pappas/ExtCore/blob/42d629bc434248f77c2a8fc663b92167079d071f/ExtCore/Control.fs А ExtCore с .NET Core таки сoвместим, вариант испoльзoвать.

Sergey
02.06.2018
08:33:46
@sergey_tihon Кажется, здесь нужна твоя помощь. https://github.com/fsprojects/FSharpx.Extras/pull/360#issuecomment-388575151
спасибо, написал Дону чтобы он пошарил со мной новый пароль от fsprojects NuGet account если пришлет то помогу =)

Evgeniy
02.06.2018
08:34:28
Ура1

Friedrich
02.06.2018
08:35:23
?

Evgeniy
02.06.2018
08:49:01
> dsyme > Please do use the pre-releases of F# 4.5 that you'll be seeing coming out (or even just the nightlies) as EARLY as possible, and give feedback as EARLY as possible. The cost to fix a problem or make a design adjustment goes from "low" to "infinity" over the next few weeks.... ?

Vasily
02.06.2018
08:49:23
А что там нового?

Evgeniy
02.06.2018
08:49:35
Спаны.

Vasily
02.06.2018
08:50:05
Стратегические изменения, в общем

Evgeniy
02.06.2018
08:51:51
И всякая мелочевка. https://github.com/Microsoft/visualfsharp/pulls?q=is%3Apr+label%3A%22Candidate+for+F%23+4.5%22+is%3Aclosed

Но спаны — это топ.

Анонимные записи, кажется, в F#5 переезжают.

Igor
02.06.2018
09:13:22
Но спаны — это топ.
Это которые из C#, для низкоровневого программирования?

Evgeniy
02.06.2018
09:14:30
Для перфоманса.

Google
Mikhail
02.06.2018
09:25:14
А что, можно в фшарп проекте иметь c# файлы?

Evgeniy
02.06.2018
09:25:49
Нет.

Ivan
02.06.2018
09:27:23
Обидно. Первый раз F# в догоняющих. И без опережающих фич.. Я о 5

Mikhail
02.06.2018
09:28:41
Нет.
Мне сгенерило C# контроллер в f# asp.net проекте. Меня смутило, что это билдится, имеет подсветку и интеллисенс

Vlad
02.06.2018
09:28:57
Анонимные записи, кажется, в F#5 переезжают.
Это, их разница с c# анонимными объектами в том, что они не локальны для функции? В плане их можно будет из неё вернуть, в f#?

Ivan
02.06.2018
09:31:25
Можно

Mikhail
02.06.2018
09:35:25
Я в студии нажал на Add Controller. И появился .cs файлик. Он то не включается в сборку, но подсветочку имеет

Friedrich
02.06.2018
09:38:20
Ахахахахахах
Смеёшься над билдерами?

Roman
02.06.2018
09:40:30
Обидно. Первый раз F# в догоняющих. И без опережающих фич.. Я о 5
Видимо это выгодная позиция. Раз с# на ней так развился)

Ivan
02.06.2018
09:44:22
Видимо это выгодная позиция. Раз с# на ней так развился)
Особенно учитываю сравнительную популярность.. Надо бы хотя бы srtp до нормального синтаксиса поднять. А то вообще пользоваться сложно.

Ivan
02.06.2018
09:50:34
SRTP - это в общем то и есть тайпклассы. TP + Quotation - метапрограммирование. Если до ума доводить - получится что то. Но ведь в планах этого соответсвия нет..

Ivan
02.06.2018
09:51:57
А где почитать?

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