@Fsharp_chat

Страница 541 из 772
Roman
06.04.2018
12:57:50
Может кто проверить у себя ест ьли такая ошибка? дам доступ к репе

Google
Friedrich
06.04.2018
13:17:01
У меня подозрение, что FCS не нравится два файла Types.fs в разных каталогах

?‍?
06.04.2018
13:21:30
Нет
Типа если такой файл #load "*.fs", а по свойствам файла установлена его компиляция (переименовал fs в fsx), то будет такая же ошибка

Friedrich
06.04.2018
13:22:23
На почту ушло
Аха, щас буду проверять.

Ну, в общем, у меня не воспроизвелось. Открыл оба файла в ionide, ошибок нет, всё зелёное.

Roman
06.04.2018
13:29:29
Ок, спасибо

Оно собирается. Это да. Мб надо что-то сделать чтоб убралась эта краснота. Раздражает дико)

Friedrich
06.04.2018
13:30:49
Попробуй почистить проект (через git clean) и заново запустить ionide. Авось отпустит его

Roman
06.04.2018
13:33:41
Thnx

Vasily
06.04.2018
13:38:05
Коллеги

Google
Vasily
06.04.2018
13:38:09
Вопрос

У нас часом ограничения на число параметров в функции нет?

Friedrich
06.04.2018
13:38:41
Ну, я таких не знаю.

Vasily
06.04.2018
13:41:44
Нашел у себя косяк, походу

?‍?
06.04.2018
15:38:54
прям класс-класс, но лучше record
https://twitter.com/kjnilsson/status/981942473034518529?s=19

Roman
06.04.2018
15:39:32
https://twitter.com/kjnilsson/status/981942473034518529?s=19
я не спорю, но чаще рекорды как объекты лучше

не серебрянная пуля

Evgeniy
06.04.2018
15:43:49
Я думаю, начинать описывать модель лучше с записей.

?‍?
06.04.2018
15:49:56
Я думаю, начинать описывать модель лучше с записей.
Смотря что за модель, иногда с интерфейсов

Roman
06.04.2018
15:50:49
да

Evgeniy
06.04.2018
15:53:41
Смотря что за модель, иногда с интерфейсов
Я про выбор "записи или классы".

Интерфейсам тоже есть альтернатива -- функции. :)

?‍?
06.04.2018
15:59:01
Подскажите, что надо реализовать в структуре, чтобы можно было использовать выражения with как в рекордах при неполных копиях?

?‍?
06.04.2018
16:36:42
Придется самому написать методов.
Я вот думаю как тут помогли бы цитатки, но примеров с ними, чтобы раскрыть наглядно функционал не могу найти даже в норм проектах на гитхабе

Google
?‍?
06.04.2018
16:39:19
Все, что нужно знать о quotations — в F# нет макросов.
Это я знаю. Но они оч хороши для работы с типами, типа обращений к нужным полям прям по их именам

Наверное не так выразился, но кажется так тоже можно

Типа укажу цитатой поля и данные, а она уже подберет конструктор

Evgeniy
06.04.2018
16:41:26
Типа укажу цитатой поля и данные, а она уже подберет конструктор
Только для этого их нужно скомпилировать и выполнить.

В рантайме.

?‍?
06.04.2018
16:42:31
То есть это плохой вариант? И никакие эквал ту не помогут?

Evgeniy
06.04.2018
16:43:03
Да, это плохой вариант решения твоей задачи.

@yerumaku Если тебе нужен with-синтаксис, то почему бы просто не взять записи?

?‍?
06.04.2018
16:46:03
@yerumaku Если тебе нужен with-синтаксис, то почему бы просто не взять записи?
Запись можно сделать структурой в один инт, но с кучей свойств?

Evgeniy
06.04.2018
16:47:42
Запись можно сделать структурой в один инт, но с кучей свойств?
[<Struct>] type Number = { Value : int } with member this.DoubleValue = this.Value * 2 member this.TripleValue = this.Value * 3

Бредовый пример. :)

На записи и DU можно навешать мемберов.

?‍?
06.04.2018
17:06:25
На записи и DU можно навешать мемберов.
Это я уже делал. То есть как раз через эти мемберы и делать with(?)



Evgeniy
06.04.2018
17:07:03
?‍?
06.04.2018
17:08:23
Это как хотелось бы.

Evgeniy
06.04.2018
17:09:37
Нет, так нельзя.

Vasily
06.04.2018
17:10:42
На самом деле, если определить правильный билдер,то синтаксис будет валидным :)

?‍?
06.04.2018
17:10:53
Нет, так нельзя.
Оно и логично, потому ищу вариант с подстановкой конструктора, но видимо решение в методе расширения, возвращающий новый рекорд, но с другим uid

Google
Evgeniy
06.04.2018
17:11:36
Что-что?
Не слушай его, он сейчас тебе наговорит!

?‍?
06.04.2018
17:25:21
Там еще сам байт до валидного режется, в принципе ОК (наркОманиК).

Vasily
06.04.2018
17:26:11
И автоматом валидирует типы

Vasily
06.04.2018
17:29:44
Есть примеры таких билдеров?
Ну я нанаркоманил для десериализации

Там тупой билдер с одной кастомной операцией

Но в результирующем типе свойство должно быть, естественно

?‍?
06.04.2018
17:31:38
Но в результирующем типе свойство должно быть, естественно
А что выходит по итогу по синтаксису? Какими выражениями строятся объекты?

Vasily
06.04.2018
17:32:35
Ну что-то типа obj{set 2}

Вся магия там в функции создания

А это просто сахар для удобства

Если это мутабельный класс, то можно через квотейшны извратиться

Кстати, кто знает, как записать with в другом виде?

?‍?
06.04.2018
17:40:15
...и это просто для справки, тк всё равно править буду скорее всего через кортежи, когда надо будет 2+ проперти менять.

Vasily
06.04.2018
17:49:55
Ну надо подумать

Pavel
06.04.2018
17:51:39
недоглядел

Google
Pavel
06.04.2018
17:52:20
статик мемберы и |>

?‍?
06.04.2018
18:00:08
Pavel
06.04.2018
18:05:54
type X = { uid : int } with static member withP1 (o: byte) X = { X with uid = int o } static member withP2 (o: byte) X = { X with uid = 2 * int o } let foo() = let x = { uid = 10 } x |> X.withP1 10uy |> X.withP2 20uy

при сильном желании X.withP1 можно утками заменить

Pavel
06.04.2018
18:10:32
static member withP1 (o: byte) (x : X) = { x with uid = int o }

так понятней?

?‍?
06.04.2018
18:13:21
static member withP1 (o: byte) (x : X) = { x with uid = int o }
В чём отличие от записи через запятую?

То есть моя ошибка в порядке параметров?

Pavel
06.04.2018
18:14:17
к запятой |> не пременить

Roman
06.04.2018
18:15:20
Это же геттер у тебя, нет?

Pavel
06.04.2018
18:16:22
То есть моя ошибка в порядке параметров?
в случае использования |> в порядке и кол-ве

Roman
06.04.2018
18:16:52
https://sharplab.io/#v2:DYLgZgzgPgLgngBwKYAIDaAeAyjATgVwGMYA+AXRQCUlCUBeFBXASwDcBDGVAbxX2YAmKECmYA7GCgC+AWABQKFAHdmMABYp5igLZJtAIyS4U65hAB0ABQCM9E2rPn+QgFQoATFpS6DR+48t3O1MLZxQ3AGYgA==

у тебя там нет сеттера,

Roman
06.04.2018
18:18:56
А, понял

?‍?
06.04.2018
18:25:40
Спасибо всем приложившим свои мысли! + ⭐️

Roman
06.04.2018
18:30:29
Нормальный выход из ситуации))

Новостей не будет. Твиттер сломался :(

?‍?
06.04.2018
18:37:40
Нормальный выход из ситуации))
Теперь вопрос к любителям выносить всё из классов в модули - как?

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