Haskell Raaz加密库中randomByteString的类型转换
我试图使用加密库中的randomByteString。在这段代码中面临一些类型转换的问题Haskell Raaz加密库中randomByteString的类型转换,haskell,Haskell,我试图使用加密库中的randomByteString。在这段代码中面临一些类型转换的问题 str=randomByteString(42::ALIGN) 在这里,此代码返回类型为RT mem ByteString的str,如何将其类型转换为ByteString?randomByteString函数需要一个长度参数,该参数是多态的,并生成一个必须使用安全地或不安全地运行的一元结果。把这些放在一起,记住给出显式类型,这样我们就不会产生歧义: securely (randomByteString (
str=randomByteString(42::ALIGN)
在这里,此代码返回类型为
RT mem ByteString
的str
,如何将其类型转换为ByteString
?randomByteString
函数需要一个长度参数,该参数是多态的,并生成一个必须使用安全地或不安全地运行的一元结果。把这些放在一起,记住给出显式类型,这样我们就不会产生歧义:
securely (randomByteString (10 :: BYTES Int) :: RandM ByteString)
在完整的程序中,通常不需要这些额外的类型签名,因为它们自然会出现在函数签名中,可以推断,或者在程序中以类型字段的形式出现。这是一个单子。您是否尝试过安全地使用
,或者,如果您愿意,尝试过不安全地使用
。例如,securestr::IO ByteString
。我从这个链接尝试了这个(str::IO ByteString;str=secured$randomByteString(42::ALIGN)
),但它给出了一个error@MaheshUligade既然这回答了你的问题,就接受这个答案。要接受答案,请单击答案旁边的空心复选标记。有关更多详细信息,请参阅。