Adott két lista, A és B. Döntsd el, hogy:
A lista a B listával equal; vagyA lista tartalmazza a B listát (az A a B listának a superlistje); vagyA listát tartalmazza a B lista (az A a B listának a sublistje); vagyA és a B lista unequalPontosabban: az A lista akkor equal a B listával, ha mindkét listában ugyanazok az értékek ugyanabban a sorrendben szerepelnek.
Az A lista akkor superlistje a B listának, ha az A tartalmaz egy, a B listával equal értékekből álló összefüggő részsorozatot.
Az A lista akkor sublistje a B listának, ha a B tartalmaz egy, az A listával equal értékekből álló összefüggő részsorozatot.
Példák:
A = [] és B = [] (mindkét lista üres), akkor az A és a B lista equalA = [1, 2, 3] és B = [], akkor az A a B listának a superlistjeA = [] és B = [1, 2, 3], akkor az A a B listának a sublistjeA = [1, 2, 3] és B = [1, 2, 3, 4, 5], akkor az A a B listának a sublistjeA = [3, 4, 5] és B = [1, 2, 3, 4, 5], akkor az A a B listának a sublistjeA = [3, 4] és B = [1, 2, 3, 4, 5], akkor az A a B listának a sublistjeA = [1, 2, 3] és B = [1, 2, 3], akkor az A és a B lista equalA = [1, 2, 3, 4, 5] és B = [2, 3, 4], akkor az A a B listának a superlistjeA = [1, 2, 4] és B = [1, 2, 3, 4, 5], akkor az A és a B lista unequalA = [1, 2, 3] és B = [1, 3, 2], akkor az A és a B lista unequalAz
Ordering
típusnak három konstruktora van: LT („kisebb, mint”), EQ („egyenlő”) és GT („nagyobb,
mint”). Ezek kifejezhetik a részlista-sorrendet, ahol a Just LT jelentése „részlista”,
és így tovább, a Nothing pedig azt jelenti, hogy nem részlista, nem szuperlista és nem
egyenlő.
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.