Ich versuche, eine wirklich einfache Twitter-Client mit Haskell zu machen, und die Dinge einfach zu machen Ich habe versucht, eine einfache putStrLn und getLine (ich weiß nicht, ob dies die beste Lösung ist für das Problem oder nicht, ich bin ziemlich neu in Haskell).Haskell IO Cli-Menü für kleine Twitter-Client
Ich wollte so etwas tun, aber die Ausgangstypen sind unterschiedlich, so seine gonna geben einen massiven Fehler:
main:: IO()
main = do
putStrLn "1)Tweet\n 2)Timeline\n 3)DM\n 4)Inbox\n"
numero <- getLine
if(numero == 1)
then do
frase <- getLine
tweet frase
else
if(numero == 2)
then do
frase <- getLine
timeline frase
else
if(numero == 3)
then do
frase <- getLine
nome <- getLine
dm frase nome
else
if(numero == 4)
then
inbox
else do
PutstrLn "Invalido"
tweet :: String -> IO (Either String Tweet)
timeline :: String -> IO (Either String [Tweet])
dm :: String -> String -> IO(Either String DM)
inbox :: IO(Either String [DM])
Und wie ich oben erklärt seine gonna geben Sie Fehler wie:
Main.hs:86:25: error:
Couldn't match type ‘Either String DM’ with ‘()’
Expected type: IO()
Actual type: IO (Either String DM)
und:
Main.hs:75:11: error:
• Couldn't match type ‘Either String Tweet’ with ‘()’
Expected type: IO()
Actual type: IO (Either String Tweet)
Wenn jemand eine ideia hat sich diese besondere pr zu lösen Es würde sehr geschätzt werden.
Bitte alle relevanten Codes und Fehlermeldungen posten. Es ist schwierig, Ihnen zu helfen, wenn Ihr Beitrag kein [minimales, vollständiges und überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) enthält. – Mephy
@Mephy hinzugefügt einige Beispiele –
Es gibt einen Tippfehler in der Frage. 'PutstLn' sollte' putStrLn' sein. – Cirdec