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

??
06.04.2018
13:15:06

Friedrich
06.04.2018
13:16:28

Google

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

Roman
06.04.2018
13:17:45
Ща

??
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
Ну, я таких не знаю.

??
06.04.2018
13:39:19

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

Roman
06.04.2018
13:45:12

??
06.04.2018
15:38:54

Roman
06.04.2018
15:39:32
не серебрянная пуля

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 как в рекордах при неполных копиях?

Evgeniy
06.04.2018
15:59:44
Придется самому написать методов.

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

Evgeniy
06.04.2018
16:37:02
Все, что нужно знать о quotations — в F# нет макросов.

Google

??
06.04.2018
16:39:19
Наверное не так выразился, но кажется так тоже можно
Типа укажу цитатой поля и данные, а она уже подберет конструктор

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

Evgeniy
06.04.2018
16:47:42
Бредовый пример. :)
На записи и DU можно навешать мемберов.

??
06.04.2018
17:06:25

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

??
06.04.2018
17:11:09

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

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

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

??
06.04.2018
17:26:59

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 можно утками заменить

??
06.04.2018
18:09:43

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
То есть моя ошибка в порядке параметров?

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==
у тебя там нет сеттера,

??
06.04.2018
18:17:59

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