8
我有型,基本上充當另一個數據類型標籤:「繼承」實例包裹型
import Data.Word
data RijndaelField = RF Word8
我想RijndaelField
以「繼承」的Bits
以儘可能簡單的方式Word8
實例:
import Data.Bits
instance Bits RijndaelField where
RF a .&. RF b = RF $ a .&. b
RF a .|. RF b = RF $ a .|. b
RF a `xor` RF b = RF $ a `xor` b
complement (RF a) = RF $ complement a
shift (RF a) n = RF $ shift a n
rotate (RF a) n = RF $ rotate a n
bitSize (RF a) = bitSize a
isSigned (RF a) = isSigned a
testBit (RF a) n = testBit a n
bit n = RF $ bit n
popCount (RF a) = popCount a
是否有表達RijndaelField
和Word8
之間的關係更短的方法是什麼?
這正是我所期待的,謝謝。 (有一個擴展的一切!) – Snowball
@Snowball只是約=)這一個是特別有用的時候包裝了一堆monad變換器,你可以讓編譯器派生'Monad','Functor','MonadTrans','' MonadState MyState','Applicative'等等。生成大量樣板代碼非常方便。 – bheklilr