Так что у меня проблемы с некоторыми переменными типами.Haskell: Integer to Int с int signature
getOrdenado :: (String,Int,String,Int,Int) -> Int
getOrdenado (_,_,_,a,_) = a
listaOrdenado :: [(String,Int,String,Int,Int)] -> [Int]
listaOrdenado xs = map getOrdenado xs
getOrdenado принимает определенное значение Int из кортежа, содержащегося в списке кортежей и listaOrdenado составляет список всех thoose конкретных Int «с.
Эта функция должна работать на следующем списке:
firma = [("Ana", 30, "RH", 1500, 3), ("Rui", 40, "Vendas", 1000, 2),
("Luis", 45, "RH", 3333, 5), ("Maria", 55, "Admin", 2000, 4)]
Но всякий раз, когда я попробовать запустить listaOrdenado с этим списком я получаю следующую ошибку
Couldn't match type `Integer' with `Int'
Expected type: [(String, Int, String, Int, Int)]
Actual type: [([Char], Integer, [Char], Integer, Integer)]
In the first argument of `listaOrdenado', namely `firma'
In the expression: listaOrdenado firma
In an equation for `it': it = listaOrdenado firma
Я не разрешено используйте Целое число в подписи класса, только Int, так что я не знаю, как это решить, и у меня нет cl у.е, почему он говорит, что эти ценности в ФИРМЫ являются Integer «s
Вы можете принудительно ввести 'Int' в качестве типа, введя такие встроенные типы, как' 30 :: Int', или дайте 'firma' подпись типа, чтобы вместо' Integer' вместо 'Integer' использоваться' Int'' default) – KarlC
Попробуйте положить 'firma :: [(String, Int, String, Int, Int)]' перед объявлением для 'firma'. Если вы определяете это в GHCi, тогда вместо этого помещайте его в файл. – bheklilr
Мне не разрешено давать какие-либо подписи ** firma **, более конкретно мне не разрешено ничего менять о ** firma ** – eXistanCe