O kata do diamante recebe uma letra como entrada e a exibe em formato de diamante. Dada uma letra, ele imprime um diamante começando com 'A', com a letra fornecida no ponto mais largo.
Nos exemplos a seguir, os espaços são indicados por caracteres ·.
Diamante para a letra 'A':
A
Diamante para a letra 'C':
··A··
·B·B·
C···C
·B·B·
··A··
Diamante para a letra 'E':
····A····
···B·B···
··C···C··
·D·····D·
E·······E
·D·····D·
··C···C··
···B·B···
····A····
Você precisa implementar a função diamond, que imprime um losango começando em
A, com o caractere dado nos seus pontos mais largos. Você pode usar a
assinatura fornecida se estiver em dúvida sobre os tipos, mas não deixe que ela
restrinja sua criatividade:
diamond :: Char -> Maybe [String]
Este exercício trabalha com dados textuais. Por razões históricas, o tipo
String do Haskell é sinônimo de [Char], uma lista de caracteres. Para lidar
com dados textuais de forma mais eficiente, pode-se usar o tipo Text.
Como extensão opcional deste exercício, você pode
- text à sua lista de dependências no package.yaml.Data.Text da seguinte
forma:import qualified Data.Text as T
import Data.Text (Text)
diamond :: Char -> Maybe [Text] e se
referir aos combinadores de Data.Text como, por exemplo, T.pack,Data.Text,String por Text no Diamond.hs:diamond :: Char -> Maybe [Text]
Esta parte é totalmente opcional.
Crie sua conta no Exercism para aprender e dominar Haskell com 107 exercícios e mentoria humana de verdade, tudo de graça.