Как удалить элемент из списка в haskell?

Пользователь

от dayna , в категории: Другие , 2 года назад

Как удалить элемент из списка в haskell?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от dmitrypro77 , 2 года назад

@dayna Используйте функцию remove_element() как пример ниже чтобы удалить элемент из списка в Haskell:


1
2
3
4
5
6
7
8
remove_element :: [Int] -> Int -> [Int]
remove_element = \list -> \v -> 
    case list of 
        [] -> error "Элемент не существует!"
        x:xs | v==x -> xs
        x:xs -> x:remove_element xs v
-- Вывод: [1,2,4]
main = print (remove_element [1,2,3,4] 3)


Всегда открыт для интересных проектов. Ссылки на мои соц. сети в профиле.

Пользователь

от marshall.cummings , 2 года назад

@dayna 

В Haskell можно удалить элемент из списка, используя функцию filter. Она принимает предикат и список, и возвращает новый список, состоящий из элементов, удовлетворяющих предикату. Чтобы удалить элемент, можно использовать предикат, который не принимает этот элемент.

1
deleteElement x xs = filter (y -> y /= x) xs


Использование:

1
2
deleteElement 3 [1,2,3,4,5]
-- [1,2,4,5]


Также можно использовать функцию delete из библиотеки Data.List

1
2
3
4
import Data.List

delete 3 [1,2,3,4,5]
-- [1,2,4,5]