При работе с разнородными данными возникает изрядная потребность в частичной смене простых объектов, содержащих данные.Например, вы можете добавить, удалить или переименовать свойство или объединить два объекта.Это достаточно просто в динамических языках, но мне интересно, есть ли какие-нибудь умные решения, предложенные статическими языками?
Чтобы исправить идеи, есть ли языки, которые позволяют, возможно, с помощью некоторого статического синтаксического синтаксиса,что-то вроде этого (C #):
var hello = new { Hello = "Hello" };
var world = new { World = "World" };
var helloWorld = hello + world;
Console.WriteLine(helloWorld.ToString());
//outputs {Hello = Hello, World = World}
Это, конечно, кажется возможным, поскольку информация времени выполнения не используется.Существуют ли статические языки с такой возможностью?
Добавлено:
Ограниченная версия того, что я рассматриваю, - это выражение # 1010 * для копирования и обновления записи F # :
let myRecord3 = { myRecord2 with Y = 100; Z = 2 }