@Fsharp_chat

Страница 535 из 772
Roman
04.04.2018
09:03:27
Куда же проще?

Vasily
04.04.2018
09:03:44
О, точняк

@Liminiens респект

А теперь вопрос, как это сделать не статик мембером :)

Google
Vasily
04.04.2018
09:07:11
Т.е. есть member x.Value

Где x как раз Value x

Точнее V

Roman
04.04.2018
09:11:50
Можешь описать что ты хочешь?

Vlad
04.04.2018
09:11:55
если статик то: type V = | V of int static member private GetValue (V x) = x member this.Value = V.GetValue(this) [<EntryPoint>] let main argv = let v = V 100 printf "%i" v.Value 0 // return an integer exit code

Vasily
04.04.2018
09:12:34
Ишь ты

Ну так еще длиннее

Интересует вопрос, как правильно описать деконструкцию

Roman
04.04.2018
09:13:08
Можно статику приватным сделать

Vasily
04.04.2018
09:13:22
А точнее, можно ли из нее достать тип значения

member x.V = x???

Что надо написать вместо x???, чтобы взять значение

Google
Vasily
04.04.2018
09:14:34
Пока получается две строки

Первая - деконструкция, вторая собственно возвращение значения

Вопрос, можно ли результат деконструкции запайпить

И сразу его вернуть, например

Kirill
04.04.2018
09:15:27
можно же x |> V написать

или я неправильно понял задачу?

Vasily
04.04.2018
09:15:57
Хммм

Минуту

Roman
04.04.2018
09:16:03
или я неправильно понял задачу?
Задача обратная насколько я понял

Vlad
04.04.2018
09:16:04
Интересует вопрос, как правильно описать деконструкцию
в плане, узнать тип в методе объекта члена объединения?

Vlad
04.04.2018
09:17:08
Угу, но скорее значение интересует
когда вариантов несколько?

Vasily
04.04.2018
09:17:15
В целом, можно не заморачиваться и тупо объявить модуль, конечно

когда вариантов несколько?
Да не, вариант один

Vlad
04.04.2018
09:19:06
я бы просто так написал и не парился: type V = V of int module V = let getValue (V x) = x

Vasily
04.04.2018
09:19:23
Ну я ща так и написал

Старые ооп привычки дают о себе знать

Можно даже универсальный деконстракт написать по идее

Vlad
04.04.2018
09:20:24
ну так-то моя штука на 2х методах работает

Google
Vasily
04.04.2018
09:25:55
Угу

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

Evgeniy
04.04.2018
09:58:56
Храбрые ребята, которые запиливают фичи мимо RFC! https://github.com/Microsoft/visualfsharp/pull/4673

Vasily
04.04.2018
10:35:33
Какой @fvnever злой

Roman
04.04.2018
10:37:39
Friedrich
04.04.2018
10:38:20
?
Ему не понравилось, что я написал критику в комментариях к PR!

Vasily
04.04.2018
10:38:29
Да я комменты к пулл реквесту читаю :)

Человек старался, а его мордой об стол хрясь :)

Friedrich
04.04.2018
10:39:12
И ничо не хрясь, я просто предложил пересмотреть как минимум один аспект.

Vasily
04.04.2018
10:39:21
Хотя пропозал мегастранный

Friedrich
04.04.2018
10:39:26
Кстати, вы читали код? Я не понял, как это вообще работает.

Vasily
04.04.2018
10:39:34
Чувак из Явы,видать

Friedrich
04.04.2018
10:39:47
В частности, я там не вижу этого подчёркивания.

Чувак из Явы,видать
Синтаксис очень похож на Scala.

Там только скобки фигурные.

import xxx._ import yyy.{Zzz, Yyy}

Vasily
04.04.2018
10:40:34
Ну скальный,да

Там любят partial import

Friedrich
04.04.2018
10:41:05
(не помню только, можно ли совмещать _ и {} — вроде бы такого нет)

Google
Friedrich
04.04.2018
10:41:39
В частности, я там не вижу этого подчёркивания.
А, всё, нашёл где подчёркивание: https://github.com/Microsoft/visualfsharp/pull/4673/files#diff-f684cd54cc6b2765be570b976a252d3cR4692

Vladimir
04.04.2018
10:46:51
логичнее было бы квадратные, это же массив неймспейсов

Klei
04.04.2018
10:57:14
Пробовал когда-то писать анализаторы и рефакторинги на Roslyn для C#. Куда смотреть чтобы сделать подобное на F# в большой VS?

?‍?
04.04.2018
11:01:02
Вопрос, если метод назвать так, то либра C# его не видит. Почему не превращает в UpdateUid? this.``update uid``() = ...

Friedrich
04.04.2018
11:01:31
Вопрос, если метод назвать так, то либра C# его не видит. Почему не превращает в UpdateUid? this.``update uid``() = ...
Ну ты же специально его так назвал, чтоб из C# нельзя было вызвать, правда же? :)

Никто не обещал его преобразовывать.

?‍?
04.04.2018
11:02:06
атрибут я CompileName ставь
То есть только ручками?

Roman
04.04.2018
11:02:25
То есть только ручками?
конкретно такие имена, да

Admin


Roman
04.04.2018
11:02:33
это же F# онли

?‍?
04.04.2018
11:03:00
Ну ты же специально его так назвал, чтоб из C# нельзя было вызвать, правда же? :)
То есть это такой уровень безопасности для F# от рефлексии?

Friedrich
04.04.2018
11:03:23
То есть это такой уровень безопасности для F# от рефлексии?
От рефлексии-то ты не защитился. И это не безопасность, это просто, гм, возможность такая. C# её не поддерживает.

Roman
04.04.2018
11:06:07
С помощью рефлексии можно добраться до него из C#?
Попробуй, я специально не пробовал. Было бы интересно посмотреть

Klei
04.04.2018
11:06:34
https://fsharp.github.io/FSharp.Compiler.Service/
Есть hello world по вкорячиванию сего в VS?

Evgeniy
04.04.2018
11:10:53
Я недавно думал над утилиткой, которая работает с дырками как в Haskell.

Google
Evgeniy
04.04.2018
11:12:05
Интересно, насколько сложно ее будет реализовать с помощью FCS.

Evgeniy
04.04.2018
11:14:18
с чем?
https://wiki.haskell.org/GHC/Typed_holes

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

Vasily
04.04.2018
11:22:55
Кстати

Модули могут быть типизированными?

Roman
04.04.2018
11:23:21
Модули могут быть типизированными?
Было бы круто, но почему-то нет

Vasily
04.04.2018
11:23:25
Вопрос снимается

Скорее всего там типизированы методы во всяких List

Vlad
04.04.2018
11:24:11
Vasily
04.04.2018
11:24:48
Ну я ща не туда подался, походу

Friedrich
04.04.2018
11:27:50
Я недавно думал над утилиткой, которая работает с дырками как в Haskell.
Если будет нужна помощь по вкорячиванию в редакторы — свистни.

Roman
04.04.2018
11:28:17
круто

?‍?
04.04.2018
12:14:51
Есть несколько объектов (до ≈20), которые нужно периодически сортировать после добавления новых/удаления старых. Что лучше использовать, спискок, массив, что-то ещё?

Klei
04.04.2018
12:16:07
Сортировка таже? Или меняется?

?‍?
04.04.2018
12:17:33
Сортировка таже? Или меняется?
В смысле? Внутри DU, которые сортируются по типу сначала, и по содержанию между собой. Пока что лежат списком, но вот возникает трабл с синтаксимом удаления элементов. static member ``sort by type`` obj = match obj with | A (record) -> 0b000001 <<< 26 ||| record.uid >>> 5 | B (record) -> 0b000010 <<< 26 ||| record.uid >>> 5 | C (record) -> 0b000100 <<< 26 ||| record.uid >>> 5 | D (record) -> 0b001000 <<< 26 ||| record.uid >>> 5 | E (record) -> 0b010000 <<< 26 ||| record.uid >>> 5

Klei
04.04.2018
12:21:08
Тебе по списку часто бегать надо? Если да, то юзай SortedList какой-нибудь.

Если нужна иммутабельность, то возможно зиппер подойдет.

?‍?
04.04.2018
12:23:36
Тебе по списку часто бегать надо? Если да, то юзай SortedList какой-нибудь.
Бегать нужно, да, но порядок не важен. Порядок важен только для вьюшки.

Vasily
04.04.2018
12:23:58
Тогда вопрос

ПОчему надо держать отсортированный список

Если он только для вьюхи

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