Haskell - Списки

 
0
 
Functional languages
ava
R654 | 25.03.2012, 14:17
Доброго времени суток!
Помогите плиз с такой вот задачкой:
Требуется удалить из списка заданный подсписок. Написал вот так:

delSublist :: [Integer] -> [Integer] -> [Integer]
delSublist xs ys = xs \\ ys

Работает конечно, но думаю, суть задачи заключается в том, чтобы удалить именно заданную последовательность (список ys). Может у кого есть какие наработки?
Comments (1)
ava
R654 | 25.03.2012, 14:13 #
Тема закрыта! Решил сам. Вот что у меня получилось (не знаю, может и "из пушки по воробьям", я ток пару часов в языке разбираюсь):

delsub :: [Integer] -> [Integer] -> [Integer] -> [Integer]
delsub rs xs [] = xs
delsub rs [] ds = reverse rs
delsub rs xs ds = if ys == ds
                      then delsub rs zs ds
                      else delsub (head xs:rs) (tail xs) ds
           where (ys, zs) = splitAt (length ds) xs
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
  R654
advanced
Submit