Exerciții Laboratorul 5, Exercițiul 1 (partea 2)

oddIndexes/2 — elementele de pe poziții impare

Laboratorul 5, Exercițiul 1 (partea 2) medium findall / bagof / setof (generate-and-test)Predicate predefinite pe liste

Scrieți un predicat oddIndexes/2 care să extragă toate elementele de pe pozițiile impare dintr-o listă, fără a utiliza recursia.

?- oddIndexes([a, b, c, d, e], LR).
LR = [b, d]

Hint: combină length/2, numlist/3, zip/3 și findall/3. Pasul cheie — zipuiești lista cu [0, 1, 2, ...] și apoi filtrezi perechile (X, Y) cu Y mod 2 =:= 1.

Te-ai blocat?
editor soluție
?-
Tastează o interogare (ex. father_of(sandra, X).) și apasă Enter — sau apasă pe un caz de test de mai jos.
Cazuri de test (2 — apasă pe unul ca să îl rulezi, sau Verifică pentru toate)
?
oddIndexes([a, b, c, d, e], LR). așteptat: LR = [b,d]
?
oddIndexes([10, 20, 30], LR). așteptat: LR = [20]