@Fsharp_chat

Страница 303 из 772
Roman
07.09.2017
10:59:21
+

Evgeniy
07.09.2017
10:59:36
хмм
Почитай документацию, друже. https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual/casting-and-conversions-%5Bfsharp%5D#casting-object-types

Там есть примеры.

Anton
07.09.2017
11:00:53
хм интересно, а я то думал, для чего эти :>

Google
Pavel
07.09.2017
11:23:23


что означает шарп перед IPEndPoint в данном контексте?

возможно, что это дженерик, который получается вывести в данном контексте только как IPEndpoint?

Anton
07.09.2017
11:32:30
@gsomix а как бы так через F# мне из массива достать самые высокие по модулю числа ?

P
07.09.2017
11:34:04
Array.sortBy | Seq.take подойдут?

Anton
07.09.2017
11:34:30
сейчас гляну

Vasily
07.09.2017
11:34:37
Array.maxBy

Anton
07.09.2017
11:34:38
но вроде я так пробовал и не подошло

Vasily
07.09.2017
11:35:38
Ну ищешь максимум

потом фильтр

Pavel
07.09.2017
11:35:52
arr |> Array.map (fun x -> (Math.Abs x, x)) |> Array.sortByDescending (fun (xAbs, x) -> xAbs) |> Array.map (fun (_, x) -> x)

P
07.09.2017
11:36:04
Seq.sortBy | Seq.take

Anton
07.09.2017
11:36:12
у меня есть нюанс, мне нельзя минусы удалять =)

Google
Klei
07.09.2017
11:36:25
Array.maxBy abs

Ilya
07.09.2017
11:36:53
arr |> Array.sortByDescending Math.Abs |> Array.take 10

Pavel
07.09.2017
11:37:05
arr |> Array.map (fun x -> (Math.Abs x, x)) |> Array.sortByDescending (fun (xAbs, x) -> xAbs) |> Array.map (fun (_, x) -> x)
отсортирует по убыванию и сохранит оригинальные значения

Ilya
07.09.2017
11:37:24
так же, но без лишних мапов

Pavel
07.09.2017
11:37:41
хмм, да

Anton
07.09.2017
11:38:30
у меня почемуто нету методов sortByDescending и take у Array

Pavel
07.09.2017
11:38:37
я вот думаю, стоит ли накидывать говна

Anton
07.09.2017
11:38:37
я чего-то забыл подключить?

Pavel
07.09.2017
11:38:47
вы тут все такие дружелюбные тип

P
07.09.2017
11:38:51
У тебя F# какой версии?

Anton
07.09.2017
11:39:18
4.что-то-там

Fsharp.Core 4.3.1.0

Klei
07.09.2017
11:39:52
Можно узнать, чем не подходит items |> Array.maxBy abs?

Pavel
07.09.2017
11:39:53
скинь кусок кода

Evgeniy
07.09.2017
11:39:56
что означает шарп перед IPEndPoint в данном контексте?
https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/flexible-types

P
07.09.2017
11:40:08
Можно узнать, чем не подходит items |> Array.maxBy abs?
Тем, что выдаст только одно число?

Klei
07.09.2017
11:40:24
Nikolay
07.09.2017
11:40:27
P
07.09.2017
11:41:01
Лично я не вижу в Array модуле take. Но можно как-то так: Array.toSeq |> Seq.take

Google
Anton
07.09.2017
11:41:16
а мне нужен мой массив

Anton
07.09.2017
11:41:30
только исключая малые велечины

P
07.09.2017
11:41:31
Просто не очень понятно зачем тратить память на временный массив (он же будет хранится?), если можно просто всё сделать в рамках Seq

Anton
07.09.2017
11:42:09
скинь кусок кода
open System open MathNet.Numerics.IntegralTransforms open MathNet.Filtering [<EntryPoint>] let main argv = let vector = [|1.0;1.0;1.0;2.0;3.0;3.0;3.0;4.0;4.0;5.0;6.0;6.0;6.0;7.0;8.0;9.0;9.0|] let dph = Hartley.NaiveForward (vector,HartleyOptions.AsymmetricScaling) |> Array.map Math.Round printfn "%A" (dph |> Array.sortByDescending Math.Abs |> Array.take 10) 0

Ilya
07.09.2017
11:43:29
ну воспользуйся простым sortBy

только инвертируй все числа и все ( с помощью унарного минуса )

Anton
07.09.2017
11:44:16
c унарного минуса по подробней

я только так умею Array.Reverse

но take всеравно нету

Ilya
07.09.2017
11:45:10
сделай Seq.take 10 |> Seq.toArray

Seq.sortBy (fun x -> - abs x)

Anton
07.09.2017
11:46:07
угу уже делал

афк

Nikolay
07.09.2017
12:02:23
Ilya
07.09.2017
12:02:44
там минус еще

Seq.sortBy (abs >> (-)) возможно так можно, но я не уверен

Google
Nikolay
07.09.2017
12:04:23
let negAbs x = -(abs x) Seq.sortBy negAbs

Anton
07.09.2017
12:39:58
Ilya

Ilya
07.09.2017
12:40:15
ну ок, значит нельзя

Anton
07.09.2017
12:40:38
в целом (dph |> Array.sortBy Math.Abs |> Seq.take 3) работает прямо противоположно тому, что мне нужно

[0.0; 0.0; -3.0]

а мне как-бы наоборот нужно =)

Ilya
07.09.2017
12:41:24
ну так вместо Array.sortBy Math.Abs напиши Seq.sortBy (fun x -> - abs x)

Anton
07.09.2017
12:41:40
хм, - abs

Ilya
07.09.2017
12:41:48
да

Anton
07.09.2017
12:41:52
никогда не бы не подумал, что там можно =)

забавно!

но вот есть ещё "нюанс" - важно брать именно в той последовательности, в которой оно лежало изначально

Ilya
07.09.2017
12:43:27
то есть?

Vasily
07.09.2017
12:43:34
Ну тогда только фолдом

Точнее фильтром

И в два прохода

Сначала макс находишь

Потом по фильтру берешь

Anton
07.09.2017
12:45:30
то есть?
есть [|78.0; -26.0; -16.0; -15.0; -9.0; -5.0; -7.0; -5.0; -4.0; -4.0; -3.0; -4.0; 0.0; 0.0; 5.0; 8.0; 22.0|] стало [|78.0; -26.0; 22.0; -16.0; -15.0|] А должно было стать [|78.0; -26.0; -16.0; -15.0 22.0;|]

Vasily
07.09.2017
12:46:11
Чет я не понял, что тебе надо отсекать

Google
Anton
07.09.2017
12:46:37
Если коротко - это алгоритм сжатия по Хартли - руками.

Vasily
07.09.2017
12:46:49
Мне это ни о чем не говорит

Anton
07.09.2017
12:46:57
мне нужно отсекать то, у чего низкая энергия

но ПОТОМ при обратном преобразовании нужно вставить нули туда, где они были

Vasily
07.09.2017
12:47:35
Условия какие?

Anton
07.09.2017
12:47:37
т.е мне нужно знать, из какой ячейки я выдрал значение

что бы между ними засунуть нули

и выполнить декодирование

так работает jpeg, mp3, mpeg, etc

в теории, можно выполнить поиск поиск потом по исходному вектору и достать индексы вытянутых значений с помощью сортировки и отрицательного модуля

это так - костылик

Vasily
07.09.2017
12:49:56
Ну сначала сделай mapi

Anton
07.09.2017
12:49:58
либо - изначально достать как нужно и потом не будет проблем, что бы жахнуть между ними нулей.

Vasily
07.09.2017
12:50:01
Потом остальное

Anton
07.09.2017
12:50:37
В целом - большое спасибо всем за ответы

Array.sortBy (fun x -> - Math.Abs x) |> Seq.take 5 прямо магия

я уже придумывал overДафига алгоритом с кучей мапов и условий

Vasily
07.09.2017
12:53:43
А, так тебе надо взять первые 5 максимумов по модулю?

Диджитал
07.09.2017
12:55:31
c мутабельными структурами данных это за один проход пишется...

Anton
07.09.2017
12:56:20
Vasily угу

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