и вот еще одно, хотя мне больше всего нравится решение Луи_Вассермана
filter (`elem` [1..4]) [1..12]
>>> [1,2,3,4]
или
filter (flip elem [1..4]) [1..12]
>>> [1,2,3,4]
fliter (\x ->x `elem` [1..4]) [1..12]
>>> [1,2,3,4]
если второй список не имеет значения, зачем ты вообще его используешь ??
и еще один пришел мне в голову:
const [1..4] list2
>>> [1,2,3,4]
последний просто игнорирует второй список и заполняет первый.