@Fsharp_chat

Страница 698 из 772
Владислав
06.09.2018
09:01:26
а есть способ скопировать C# объект ({ obj with a = 3 })?

Владислав
06.09.2018
09:02:54
рекорды копировать так можно

а у меня класс в C# описан

Google
Владислав
06.09.2018
09:03:09
и я не могу его скопировать

Roman
06.09.2018
09:04:13
рекорды копировать так можно
с C# классами такая же ситуация в F# как и с F# -классами. геттеры - сеттеры через операнд мутабельности myClass.mySetter <- value

Владислав
06.09.2018
09:04:56
а так он мне меняет сам объект

Roman
06.09.2018
09:05:17
нет синтаксиса with т.к. сам класс реализован как изменяемый объект а рекорд как неизменяемый.

Владислав
06.09.2018
09:05:42
печаль, спасибо

Roman
06.09.2018
09:07:00
печаль, спасибо
был воркэранунд ) кто-то писал экстеншн метод в котором создавал копию объекта. и через конструктор вставлял новое значение в сеттер.

Владислав
06.09.2018
09:07:15
а нет каких-нибудь C# classes to F# record генераторов?)

Roman
06.09.2018
09:09:17
типа C# class MyClass { int myInt {get;set;} string myString {get ; set } } и F# type MyClass with member this.with_myInt val = MyClass (myInt = val, myString = this.myString) ...

а нет каких-нибудь C# classes to F# record генераторов?)
не гуглил, но было бы интересно

Grigoriy
06.09.2018
10:44:02
Мож этого сразу - на ?

Vasily
06.09.2018
10:44:24
Не,ну подожди

Мы жгем по факту

Google
Grigoriy
06.09.2018
10:51:15
Мы жгем по факту
Справедливый!

Vasily
06.09.2018
10:57:45
Скорее, там что-то вроде копирующего конструктора должно быть

Grigoriy
06.09.2018
11:17:23
Скорее, там что-то вроде копирующего конструктора должно быть
+ овеврайт одной проперти, второй, первой и второй вместе, третьей... И так далее

Vasily
06.09.2018
11:17:44
Grigoriy
06.09.2018
11:42:40
Это решается именованными параметрами
Должны быть ещё и опциональными для того, чтобы разное их количество можно было указывать кмк

Vasily
06.09.2018
11:43:32
Опциональными, да

В общем, сигнатура понятна

Alexey
06.09.2018
11:47:53
и надо как-то чтобы было понятно, что незаполненные аргументы не надо менять

Alexey
06.09.2018
11:48:16
null/nullable в целом катят, но когда поле уже nullable - непонятно

а перегрузкок туча - будет комбинаторный взрыв

Ayrat
06.09.2018
11:49:17
Есть ещё кодогенерация

Grigoriy
06.09.2018
11:49:42
а перегрузкок туча - будет комбинаторный взрыв
А у нас в дотнете есть ограничение на количество методов в классе?

Roman
06.09.2018
11:49:49
https://twitter.com/kot_2010/status/1037412555189374976?s=09

Alexey
06.09.2018
11:50:07
размер секций с метаданными в файлах?

Grigoriy
06.09.2018
11:50:17
Да! Забыл сюда запостить

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

размер секций с метаданными в файлах?
На со пишут - раньше компилятор сдохнет от нехватки ресурсов

Alexey
06.09.2018
11:56:59
этот вопрос в другой плоскости

Google
Alexey
06.09.2018
11:57:45
предлагаешь вманать столько кодогенерации, чтобы он сдох от нехватки ресурсов?

Grigoriy
06.09.2018
11:57:55
:)))

Mikhail
06.09.2018
12:10:16
Подскажите, пожалуйста, почему паттерн матчинг по интам ругается?

Mikhail
06.09.2018
12:10:37
match rowOp.[0] |> int with 1 -> Append rowOp.[1]; 2 -> DeleteLast (row.Op.[1] |> int)

Andrew
06.09.2018
12:11:19
А на что ругается?

Roman
06.09.2018
12:11:40
вертикальная черта?

Andrew
06.09.2018
12:11:45
И я не знаю, будет ли работать без |

Vasily
06.09.2018
12:12:13
Ну, во-первых, на кейсы нужно |

Mikhail
06.09.2018
12:12:43
Да, сори, после Хаскелла не привык

Спасибо!

Vasily
06.09.2018
12:13:12
Во-вторых, не хватает операции для остальных значений

Типа |_->()

Mikhail
06.09.2018
12:13:41
Ну это ворнинг, не ошибка ( по дефолту )

Vasily
06.09.2018
12:13:53
В коде эксепшн будет

Точнее в рантайме

Если что

Alexey
06.09.2018
12:22:09
в смысле если ни один из вариантов не подойдёт?

Vasily
06.09.2018
12:22:28
Угу

Я ловил пару раз

Google
Ayrat
06.09.2018
12:22:46
ну, это логично

Vasily
06.09.2018
12:23:02
Естественно, логично

Alexey
06.09.2018
12:23:40
hardcore level: treat warnings as errors

Vasily
06.09.2018
12:24:10
Ну полезна настройка, да

Grigoriy
06.09.2018
13:31:38
Natali.alma Наталья, добавьте в объявление F#! А то офф-топик какой-то получается!

Vasily
06.09.2018
13:33:17
Я ее забанил вроде

Grigoriy
06.09.2018
13:33:36
Xak
06.09.2018
13:42:36
админы товьсь

Grigoriy
06.09.2018
13:42:47
Восстание машин какое-то

Artemy
06.09.2018
13:43:25
Успешная фотка

Grigoriy
06.09.2018
13:44:19
Какая-то грязная салфетка из кармана торчит

Зачем?

Andrew
06.09.2018
14:13:26
let toBlockStatement = function Ast.BlockStatement x -> x Есть какой то более изящный способ перейти от более верхнего типа в DU к более нижнему (его ветке) ?

У меня есть Ast.Statement, Ast.BlockStatement это его "ветка"



Mikhail
06.09.2018
14:18:28
Линзы, случаем, не для этого?

Grigoriy
06.09.2018
14:19:49
Линзы, случаем, не для этого?
мне казалось - они для вложенных струкур - не?

Mikhail
06.09.2018
14:20:16
Я ж и спрашиваю)

Google
Andrew
06.09.2018
14:20:42
ну я понимаю

Grigoriy
06.09.2018
14:28:01
Я ж и спрашиваю)
https://xyncro.tech/aether/guides/lenses.html

для вложенных структур

Привет!

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