19
을 감안할 때 :퓨전은 newtype 래퍼를 통해 볼 수 있습니까?
instance Functor MyVec where
fmap f = MyVec . Data.Vector.fmap f . unVec
윌 벡터 융합 규칙 화재 및 fmap (f . g) myVec
에 fmap f . fmap g $ myVec
를 재 작성 :
newtype MyVec = MyVec { unVec :: Data.Vector }
deriving (Functor, etc)
이이 (같은)를 만들 것인가?
주의해야 할 함정이 있습니까? Afaik는 GHC 7.8에서 컨테이너의 새로운 유형을 "지불"하는 문제를 해결 했습니까?
[The Haskell wiki] (https://www.haskell.org/haskellwiki/Performance/Data_types#Newtypes)에는 "newtype은 비용이 들지 않습니다"라고 나와 있습니다. 실제로 최적화를 방지하는 경우 실제로 수정하면 안됩니까? – gallais
'map'의 정의에는 그 안에'MyVec'에 대한 호출이 있어서는 안됩니다. 'map f x = MyVec $ Vector.map f (unVec x)'? – ErikR
첫 번째 질문 : 관련 재 작성 규칙을 어떻게 알 수 있습니까? '-ddump-rule-firings'을 사용할 때 나는 수 천 건의 발사를 본다. – fho