Присваивание
Jan. 27th, 2016 07:20 pmА вот скажите, пожалуйста, та идея что присваивание полю структуры может менять не только значение, но и тип структуры, она помимо кметтовских линз где-нибудь еще в статически типизированных языках реализована?
UPD. Мне тут делают совершенно резонное замечание, что стандартный синтаксис модификации записей в Хаскеле обладает этим свойством:
> ('z', True) & _1 .~ 42 (42, True)
UPD. Мне тут делают совершенно резонное замечание, что стандартный синтаксис модификации записей в Хаскеле обладает этим свойством:
> data Pair a b = Pair {fstP :: a, sndP :: b} deriving Show > let p1 = Pair True 'z' > :t p1 p1 :: Pair Bool Char > let p2 = p1 {fstP = 42} > :t p2 p2 :: Num a => Pair a CharУ меня это совершенно вылетело из головы.