ben Haskell bir derleyici tür yapıyorum ve bu soruna geldi şununla:türünü ulaşamasa 'a' 'dize'
:Bu benim şu an için var kodudur
data Command a = Input a | Print a
readCommand:: Read a => String -> Command a
readCommand entrada
| tokens!!0 == "INPUT" = Input (tokens!!1)
| tokens!!0 == "PRINT" = Print (tokens!!1)
where
tokens = words entrada
listInstr = lines entrada
ama bu hatayı alıyorum:
Couldn't match type 'a' with 'String'; 'a' is a rigid type variable bound by the type signature for readC:: Read a => String -> Command a
Expected type: [a] ; Actual type: [String]
bu hata ben bir dize, tip var işlevini ilan etmeleri halinde '' çok bir dize olamaz anlamına mı geliyor? Yardım için
Teşekkür
Sanırım sen ... Oku ' 'çalışacağız hangi kelimeleri/türünüze' BTW a' – Carsten
içine girdi-dizesinden belirteçleri : Belki önce farklı tiplerde tokenleri (veri türleri) ele alması gereken bir ayrıştırıcıyla başlamalısınız? – Carsten
PS, bir "a" döndürme sözü verdiğinize ve daha sonra sadece bir "String" üreteceğine söz verdiğiniz anlamına gelir - eğer readCommand "INPUT 12" :: Command Int 'derken, sorunu görmeniz gerekir – Carsten