Sto imparando haskell e ho deciso di provare a scrivere alcuni piccoli programmi di test per usare il codice Haskell e l'uso dei moduli. Attualmente sto cercando di utilizzare il primo argomento per creare un hash della password utilizzando Cypto.PasswordStore. Per testare il mio programma sto provando a creare un hash dal primo argomento e poi stampare l'hash sullo schermo.Come faccio a mettereStrLn a Data.ByteString.Internal.ByteString?
import Crypto.PasswordStore
import System.Environment
main = do
args <- getArgs
putStrLn (makePassword (head args) 12)
Sto ottenendo il seguente errore:
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)
Sto usando i seguenti collegamenti come riferimenti, ma ora sono solo tentativi erroring inutilmente. 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
Grazie ! Questo funziona per me. Il codice avvisa di una funzione deprecata ma la risposta è ciò di cui avevo bisogno. _Avvertenza: nell'uso di 'B.putStrLn ' (importato da Data.ByteString): Obsoleto:" Usa Data.ByteString.Char8.putStrLn invece_ – NerdGGuy
@NerdGGuy Eliminiamo del tutto "Data.ByteString" e usiamo semplicemente ' .. Data.ByteString.Char8' invece poi (vedi edit) – AndrewC
Grande Utilizzando Data.ByteString.Char8 senso per me – NerdGGuy