Le kata du diamant prend une lettre en entrée et la représente sous la forme d’un diamant. Pour une lettre donnée, il affiche un diamant commençant par « A », la lettre fournie se trouvant au point le plus large.
Dans les exemples suivants, les espaces sont indiqués par des caractères ·.
Diamant pour la lettre « A » :
A
Diamant pour la lettre « C » :
··A··
·B·B·
C···C
·B·B·
··A··
Diamant pour la lettre « E » :
····A····
···B·B···
··C···C··
·D·····D·
E·······E
·D·····D·
··C···C··
···B·B···
····A····
Tu dois implémenter la fonction diamond, qui affiche un losange commençant à A, avec le caractère donné à ses points les plus larges. Tu peux utiliser la signature fournie si tu as un doute sur les types, mais ne la laisse pas restreindre ta créativité :
diamond :: Char -> Maybe [String]
Cet exercice manipule des données textuelles. Pour des raisons historiques, le type String de Haskell est synonyme de [Char], une liste de caractères. Pour manipuler plus efficacement des données textuelles, on peut utiliser le type Text.
Comme prolongement facultatif de cet exercice, tu peux
- text à ta liste de dépendances dans package.yaml.Data.Text de la façon suivante :import qualified Data.Text as T
import Data.Text (Text)
diamond :: Char -> Maybe [Text] et faire référence aux combinateurs de Data.Text comme par exemple T.pack,Data.Text,String par Text dans Diamond.hs :diamond :: Char -> Maybe [Text]
Cette partie est entièrement facultative.
Inscris-toi sur Exercism pour apprendre et maîtriser Haskell avec 107 exercices, et un vrai mentorat humain, le tout gratuitement.