metaclass: (Default)
[personal profile] metaclass
Во всякого рода иммутабельной функциональщине на C#, кроме собственно вариантных типов данных, не хватает еще фичи в синтаксисе: взять запись и создать ее копию, изменив 1-2 поля. В F# вроде такое есть.
И еще структурных типов (или расширяемых на ходу записей) не хватает, чтобы можно было их из методов возвращать - а то на каждый чих именнованных типов не напишешься, а туплы нечитабельны.

В кложурях разных можно мапы использовать и на ходу полями расширять, но оно не проверямо никак статически, блин.

Date: 2015-06-18 05:05 pm (UTC)
From: [identity profile] francis-drake.livejournal.com
Запрогай линзы.

Date: 2015-06-18 05:38 pm (UTC)
From: [identity profile] binf.livejournal.com
и МОНАДЫ

Date: 2015-06-18 05:09 pm (UTC)
From: [identity profile] besm6.livejournal.com
Эээ... А как предлагается проверять статически тип, про который компилятору ничего не сказали?

Date: 2015-06-18 05:14 pm (UTC)
From: [identity profile] prepor.livejournal.com
как этот же компилятор туплы проверяет?

Date: 2015-06-18 05:44 pm (UTC)
From: [identity profile] besm6.livejournal.com
Типа туплы с именованными полями? Идея небессмысленная, но чреватая засиранием глобального пространства имен.

Date: 2015-06-18 05:37 pm (UTC)
From: [identity profile] binf.livejournal.com
Предлагается компилятору вывести тип по выражениям

Date: 2015-06-18 05:12 pm (UTC)
From: [identity profile] thedeemon.livejournal.com
В этом плане авторам языков стоит брать пример с Elm'a:
http://elm-lang.org/docs/records
Вот где сделали правильно.

Date: 2015-06-18 05:35 pm (UTC)
From: [identity profile] binf.livejournal.com
В С# rовариация и контравариация работают через наследование насколько я знаю. Вряд ли это относится к иммутабельной функциональщине.

А вообще у C# есть реальные бонусы по сравнению с F#, или всё сводится к экономии пары тактов процессора за счёт нагромождения монки-кода?

Date: 2015-06-18 08:52 pm (UTC)
From: [identity profile] madeveloper.livejournal.com
DynamicObject + Dictionary + CopyConstructor на основе MemberwiseClone. Работы на пять минут.

Date: 2015-06-19 06:28 am (UTC)
From: [identity profile] metaclass.livejournal.com
Уже сделал, да.
dynamic вызывает у меня боль своей непроверяемостью статической, которой он заражает рядом лежащий код.
Т.е. косые ошибки вида "вызвал метод инстанса от класса" - валятся в рантайме с ужасными стек-трейсами.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 29th, 2025 07:56 am
Powered by Dreamwidth Studios