我目前正在研究 Haskell 并尝试了解一个使用 Haskell 来实现加密算法的项目。在线阅读Learn You a Haskell for Great Good 后,我开始了解该项目中的代码。然后我发现我被困在以下带有“@”符号的代码中:
-- | Generate an @n@-dimensional secret key over @rq@.
genKey :: forall rq rnd n . (MonadRandom rnd, Random rq, Reflects n Int)
=> rnd (PRFKey n rq)
genKey = fmap Key $ randomMtx 1 $ value @n
Run Code Online (Sandbox Code Playgroud)
这里的 randomMtx 定义如下:
-- | A random matrix having a given number of rows and columns.
randomMtx :: (MonadRandom rnd, Random a) => Int -> Int -> rnd …Run Code Online (Sandbox Code Playgroud)