A diamond kata bemenete egy betű, kimenete pedig egy gyémánt alakzat. A kapott betűből kiindulva egy gyémántot ír ki, amely 'A'-val kezdődik, és a legszélesebb pontján a kapott betű áll.
A következő példákban a szóközöket · karakterek jelölik.
Az 'A' betűhöz tartozó gyémánt:
A
A 'C' betűhöz tartozó gyémánt:
··A··
·B·B·
C···C
·B·B·
··A··
Az 'E' betűhöz tartozó gyémánt:
····A····
···B·B···
··C···C··
·D·····D·
E·······E
·D·····D·
··C···C··
···B·B···
····A····
Meg kell valósítanod a diamond függvényt, amely egy A-tól induló gyémántot rajzol ki, a megadott karakterrel a legszélesebb pontjain. Ha bizonytalan vagy a típusokban, használhatod a megadott szignatúrát, de ne hagyd, hogy korlátozza a kreativitásodat:
diamond :: Char -> Maybe [String]
Ez a feladat szöveges adatokkal dolgozik. Történelmi okokból a Haskell String típusa ugyanazt jelenti, mint a [Char], azaz a karakterek listája. A szöveges adatok hatékonyabb kezeléséhez a Text típus használható.
A feladat opcionális kiegészítéseként a következőket teheted:
- text sort a package.yaml függőségi listájához.Data.Text modult a következő módon:import qualified Data.Text as T
import Data.Text (Text)
diamond :: Char -> Maybe [Text], és hivatkozhatsz a Data.Text kombinátoraira, például a T.pack-re,Data.Text dokumentációját,String minden előfordulását lecserélheted Text-re:diamond :: Char -> Maybe [Text]
Ez a rész teljesen opcionális.
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Haskell nyelvet 107 feladat segítségével, valódi emberi mentorálással, mindez ingyen.