Я понимаю, как использовать синтаксис записи в Haskell, но мне трудно понять, что вещь внутри фигурных фигурных скобок is.Синтаксис записи Haskell desugared
data PairRecord = PR {foo::Int, bar::String} deriving (Eq,Show)
x = (PR {foo=1, bar="init"})
y= x {foo=23}
- Что является это
{foo=23}
вещь? Последняя строка выглядит так, как если бы это был аргумент функции x, что явно не так. - Есть ли что-нибудь еще, что я могу сделать с
{foo=23}
, за исключением размещения его прямо за a запись? - Есть ли формальный способ обесцвечивать его, как то, что мы можем сделать с помощью
do
нотации?
Значит, вы можете desugar x {foo = 23}, но {foo = 23} само по себе не имеет значения, и единственное использование связано с x (или другой записью) в нем? –
Да, это так. Синтаксис '{foo = ...}' может использоваться только в конструкции, совпадении шаблонов или обновлении записи и только в сочетании с другими компонентами. Он не имеет смысла в изоляции. – kosmikus