Предыдущие ответы предлагают переключиться на класс, вместо того, чтобы использовать запись. Если вы хотите остаться с записями (из-за их простого синтаксиса и неизменности), вы можете воспользоваться следующим подходом:
type test =
{ a : float
b : float }
static member initialize (t: test) =
{ t with b = t.a * 2. }
Это полезно, если экземпляр test
создан другой библиотекой (например, поставщиком данных из веб-службы или базы данных). При таком подходе вы должны помнить, что любой экземпляр test
, полученный вами от этого API, через функцию инициализации перед использованием его в вашем коде.