Esőcseppek

Esőcseppek

Könnyű

Bevezetés

Az Esőcseppek a FizzBuzz kihívás egy kicsit összetettebb változata, ami egy klasszikus állásinterjú-kérdés.

Utasítások

A feladatod, hogy egy számot a hozzá tartozó esőcsepphangokká alakíts.

Ha egy adott szám:

  • osztható 3-mal: az eredményhez fűzd hozzá a „Pling” szöveget.
  • osztható 5-tel: az eredményhez fűzd hozzá a „Plang” szöveget.
  • osztható 7-tel: az eredményhez fűzd hozzá a „Plong” szöveget.
  • nem osztható 3-mal, 5-tel vagy 7-tel: az eredmény a szám legyen stringként.

Példák

  • A 28 osztható 7-tel, de 3-mal vagy 5-tel nem, így az eredmény "Plong" lenne.
  • A 30 osztható 3-mal és 5-tel, de 7-tel nem, így az eredmény "PlingPlang" lenne.
  • A 34 nem osztható 3-mal, 5-tel vagy 7-tel, így az eredmény "34" lenne.
Note

Az egyik gyakori módja annak, hogy ellenőrizzük, hogy egy szám maradék nélkül osztható-e egy másikkal, az, hogy a maradékot vagy a modulust nullával hasonlítjuk össze. A legtöbb programozási nyelv biztosít operátorokat vagy függvényeket ezek egyikéhez (vagy mindkettőhöz).

Tippek

Egy convert függvényt kell megvalósítanod, amely a számot esőcsepp-hanggá alakítva adja vissza. Nyugodtan használhatod a megadott szignatúrát, ha bizonytalan vagy a típusokban, de ne hagyd, hogy az korlátozza a kreativitásodat:

convert :: Int -> String

Ez a feladat szöveges adatokkal dolgozik. Történelmi okokból a Haskell String típusa a [Char], azaz a karakterek listájának a szinonimája. A szöveges adatok hatékonyabb kezeléséhez a Text típus használható.

A feladat opcionális kiterjesztéseként a következőket teheted:

import qualified Data.Text as T
import           Data.Text (Text)
  • Most már írhatsz például ilyet: convert :: Int -> Text, és hivatkozhatsz a Data.Text kombinátoraira például így: T.pack.
  • Nézd meg a Data.Text dokumentációját,
  • Ezután a Raindrops.hs fájlban lecserélheted a String összes előfordulását Text-re:
convert :: Int -> Text

Ez a rész teljesen opcionális.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Haskell Exercism

Készen állsz elkezdeni a(z) Esőcseppek feladatot?

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.

Mélyelemzés: Esőcseppek!

Fedezz fel megoldásokat: funkcionális pipeline-okat, mátrixszorzást, egy makróval előre kiszámított táblázatalapú megoldást, egy objektumorientált megközelítést, a Python és a TCL lenyűgöző felhasználását, valamint egy vállalati kiadást.