@Fsharp_chat

Страница 304 из 772
Evgeniy
07.09.2017
13:13:18
причем взять так, что бы не нарушилась последовательность, как они там изначально стояли в векторе(массиве).
Если производительность не важна, то можно просто через две сортировки сделать.

Сохраняешь индексы, сортируешь по значениям, отсекаешь, сортируешь по индексам.

Что-то более сложное ищется по запросу "k-th order statistic".

Vasily
07.09.2017
13:20:21
mapi жеж

Google
Vasily
07.09.2017
13:20:26
И кортежи

Evgeniy
07.09.2017
13:20:55
Это был обучающий момент!

Пусть @the_RAMZAY сам напишет, это несложно. :)

Anton
07.09.2017
13:22:48
угу, там попробую навертеть

Evgeniy
07.09.2017
13:23:06
угу, там попробую навертеть
Пиши, если что, подскажем.

Для накидываний есть флудилка. @dotnettalks

Klei
07.09.2017
14:06:15
@the_RAMZAY let inline takeMaxByAbs count items = let partitionWhile predicate items = let rec partitionWhile items acc = match items with | h::t when predicate h -> h::acc |> partitionWhile t | _ -> acc, items partitionWhile items [] items |> Seq.fold (fun (acc, index) item -> acc |> partitionWhile (snd >> abs >> (>) (abs item)) ||> fun smaller greater -> smaller |> List.fold (fun state p -> p::state) ((index, item) :: greater) |> fun p -> (if index < count then p else p.Tail), index + 1 ) ([], 0) |> fst |> List.sortBy fst |> List.map snd

Ilya
07.09.2017
14:07:45
слишком сложно

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

Klei
07.09.2017
14:08:37
В один проход.

Google
Evgeniy
07.09.2017
14:09:14
Klei Кинешь в gists?

В телеге неудобно код читать.

Klei
07.09.2017
14:09:27
Хотя вру, в конце опять сортировка.

Сек.

Anton
07.09.2017
14:11:48
Ух ты, пасибо! @Kleidemos

Klei
07.09.2017
14:11:52
https://gist.github.com/kleidemos/495966ba59cbac5c265e01e31797a000

Vasily
07.09.2017
14:13:16
Чет как-то жестко

Klei
07.09.2017
14:13:56
Ну всегда можно декомпозировать как человеку удобно.

Vasily
07.09.2017
14:14:23
Ну и там не один проход, похоже

Klei
07.09.2017
14:14:49
По набору элементов изначальному один проход.

Вот по аккумулятору дохрена ходит.

Vasily
07.09.2017
14:15:13
Аккумулятор там страдает,да

Anton
07.09.2017
14:15:15
У меня тут саенс... и крутой комп, в который я втарил много денег... И главное результат в конце на бумашке!

Klei
07.09.2017
14:15:50
Наверное стоило его на что-нибудь сортируемое заменить.

Anton
07.09.2017
14:16:52
@Kleidemos твой метод просто космос! ^_^

А потом я ещё графики на F# нарисую. Уииииии

Klei
07.09.2017
14:18:15
@Kleidemos твой метод просто космос! ^_^
*Здесь должен быть подзрительный стикер, который противоречит политике руководства чата*

Vasily
07.09.2017
14:19:21
С mutable можно написать попроще, по идее

Roman
07.09.2017
14:20:09
С mutable можно написать попроще, по идее
Ага, F# тем и хорош, что можно выбирать парадигму

Vasily
07.09.2017
14:20:56
Но там тоже с изнасилованием аккумулятора, к сожалению

Google
Evgeniy
07.09.2017
14:23:29
@Kleidemos твой метод просто космос! ^_^
Ну вот, свой теперь не напишешь. :(

Vasily
07.09.2017
14:23:44
Я начал обджумывать свой

Там что-то связанное с очередями

И текущим минимумом

Klei
07.09.2017
14:24:05
Вместо списка в аккумуляторе надо бы zipper юзать. Будет меньше изнасилований, правда нужно достать zipper.

Vasily
07.09.2017
14:25:09
Все равно на каждом шаге фильтрация по массиву из 5 элементов...

Klei
07.09.2017
14:26:33
Vasily
07.09.2017
14:26:40
Угу

Идея в том, что набиваем до 5, потом проверяем на текущий минимум

Но фильтр по-любому нужен

Для отбрасывания мусора

Поэтому, похоже, не обойтись без перебора

Но зато будет работать на последовательностях любой длины

Evgeniy
07.09.2017
18:34:21
> +20,810 −28,594 Сайм пишет код как молодой.

https://github.com/Microsoft/visualfsharp/pull/3561

@Dolfik Видел? Твой issue поправили.

Nikolay
07.09.2017
18:38:17
Igor
07.09.2017
20:03:51
А в DU можно запихнуть методы? Типа фабричного?

Летучая
07.09.2017
20:05:00
member x.CreateDU()

Google
Evgeniy
07.09.2017
20:06:30
member x.CreateDU()
Тогда уж static member CreateDU () = ...

Посмотрите, о чем твитнул(а) @dsyme: https://twitter.com/dsyme/status/905942283786350592?s=09

Есть надежда, что скоро Сайм возьмётся за новые фичи и F#4.2 :)

Nikolay
08.09.2017
07:18:30
И я не понял, по какому принципу срочность для issue выставляется? Для подсказки в дебаггере он поставил Soon, а для бага компилятора с рекурсивным модулем Later

Evgeniy
08.09.2017
07:32:59
А что там вкусного в F# 4.2?
Анонимные записи, например.

Vasily
08.09.2017
07:33:10
Ы?

Nikolay
08.09.2017
07:33:14
Vasily
08.09.2017
07:33:24
Без явного объявления типа записи, шоле?

Nikolay
08.09.2017
07:33:51
Evgeniy
08.09.2017
07:33:52
Без явного объявления типа записи, шоле?
Да. https://github.com/fsharp/fslang-design/blob/master/RFCs/FS-1030-anonymous-records.md

Привет!

Vasily
08.09.2017
07:33:56
dynamic в F# я как-то слабо представляю

Βοσκρεσε
08.09.2017
07:34:18
О, как вас тут много

Я вот вообще с .NET не знаком.

С Haskell только слегка

Artemy
08.09.2017
07:34:34
Vasily
08.09.2017
07:34:40
Βοσκρεσε
08.09.2017
07:34:41
Есть смысл учить F#?

Vasily
08.09.2017
07:34:51
Есть смысл учить F#?
Смотря для чего

Google
Βοσκρεσε
08.09.2017
07:34:52
Или запнусь?

Artemy
08.09.2017
07:35:13
Ну после Haskell F# должен легко зайти.

Vasily
08.09.2017
07:35:28
Только вот с анонимными рекордами одно непонятно

Evgeniy
08.09.2017
07:35:39
Есть смысл учить F#?
Надо из задач исходить. Тебе нужен .NET? :)

Vasily
08.09.2017
07:35:48
Допустим, у меня есть рекорд {A;B;C}

И я должен вернуть его из функции

А, хотя норм

{||} жеж

Βοσκρεσε
08.09.2017
07:36:23
Надо из задач исходить. Тебе нужен .NET? :)
Мне скорее нужна что-то более кроссплатформенное

Nikolay
08.09.2017
07:36:36
Анонимные записи скорее всего нельзя будет вытаскивать за пределы функции

Как в C# собственно

Vasily
08.09.2017
07:36:53
Можно

Там просто синтаксис объявления другой

Vasily
08.09.2017
07:37:14
Чтобы путаницы в рекордах не было

Nikolay
08.09.2017
07:37:18
А, ну да, вижу

Evgeniy
08.09.2017
07:37:37
Мне скорее нужна что-то более кроссплатформенное
Тогда можно попробовать F#. Без знания .NET, конечно, можно и запнуться пару раз, но не сильно. :)

Βοσκρεσε
08.09.2017
07:39:15
Есть Mono и .Net Core
Знаю, у меня не Windows

Возможностей довольно много, мобилки, веб с Websharper

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