Dada uma string que representa uma matriz de números, retorne as linhas e as colunas dessa matriz.
Então, dada uma string com quebras de linha embutidas como:
9 8 7
5 3 2
6 6 7
que representa esta matriz:
1 2 3
|---------
1 | 9 8 7
2 | 5 3 2
3 | 6 6 7
seu código deve ser capaz de produzir:
As linhas da nossa matriz de exemplo:
E as colunas dela:
Para completar este exercício, você precisa criar o tipo de dados Matrix,
com instâncias de Eq e Show, e implementar as seguintes funções:
colscolumnflattenfromListfromStringreshaperowrowsshapetransposeVocê vai encontrar uma declaração de dados fictícia e as assinaturas de tipo já prontas, mas cabe a você definir as funções e criar um tipo de dados significativo, um newtype ou um sinônimo de tipo.
Nenhuma validação da entrada é necessária. Deixe falhar se a matriz não for retangular, se caracteres inválidos aparecerem etc.
shape é (rows, cols)
Crie sua conta no Exercism para aprender e dominar Haskell com 107 exercícios e mentoria humana de verdade, tudo de graça.