Tôi đang học haskell và quyết định thử viết một số chương trình thử nghiệm nhỏ để sử dụng mã Haskell và sử dụng các mô-đun. Hiện tại tôi đang cố gắng sử dụng đối số đầu tiên để tạo một mật khẩu băm bằng cách sử dụng Cypto.PasswordStore. Để kiểm tra chương trình của tôi, tôi đang cố tạo băm từ đối số đầu tiên và sau đó in băm vào màn hình.Làm cách nào để tôi đặtStrLn một Data.ByteString.Internal.ByteString?
import Crypto.PasswordStore
import System.Environment
main = do
args <- getArgs
putStrLn (makePassword (head args) 12)
Tôi nhận được lỗi sau:
testmakePassword.hs:8:19:
Couldn't match expected type `String'
with actual type `IO Data.ByteString.Internal.ByteString'
In the return type of a call of `makePassword'
In the first argument of `putStrLn', namely
`(makePassword (head args) 12)'
In a stmt of a 'do' block: putStrLn (makePassword (head args) 12)
Tôi đã sử dụng các liên kết sau đây là tài liệu tham khảo nhưng tôi bây giờ chỉ cần thử nghiệm-erroring vô ích. http://hackage.haskell.org/packages/archive/bytestring/0.9.0.4/doc/html/Data-ByteString-Internal.html http://hackage.haskell.org/packages/archive/pwstore-purehaskell/2.1/doc/html/Crypto-PasswordStore.html
Cảm ơn ! Điều này làm việc cho tôi. Mã này cảnh báo về một hàm bị phản đối nhưng câu trả lời là những gì tôi cần. _Cảnh báo: Trong việc sử dụng 'B.putStrLn ' (được nhập từ Data.ByteString): Không được chấp nhận:" Sử dụng dữ liệu.ByteString.Char8.putStrLn thay thế_ – NerdGGuy
@NerdGGuy Hãy loại bỏ 'Data.ByteString' hoàn toàn và chỉ sử dụng' Data.ByteString.Char8' thay vì sau đó (xem chỉnh sửa) – AndrewC
Tuyệt vời Sử dụng Data.ByteString.Char8 có ý nghĩa với tôi – NerdGGuy