Есть ли в F# функция, определяющая, содержит ли список определенное значение?

В Haskell есть предикат "elem", который говорит, например:

Prelude> 5 `elem` [2,4..10]
False

Как в F# удобно определить, находится ли значение в списке, массиве, последовательности, карте или словаре?


person vik santata    schedule 02.02.2016    source источник


Ответы (2)


Ты можешь использовать:

List.exists ((=) 5) [1..5]

Или, как было предложено в другом ответе, напрямую List.contains, если у вас установлена ​​последняя версия F#.

Те же функции доступны для Seq.

person Gus    schedule 02.02.2016
comment
Также доступно для Array. Также стоит упомянуть, что если вы используете более старую версию F#, чем 4.0, вместо этого вы можете использовать методы расширения Linq: например. [1..5].Contains(5) - person torbonde; 02.02.2016

In F# it is

List.contains <element> <list>

Пример:

List.contains 5 [2..2..10]

-->

val it : bool = false

contains также определен для других типов контейнеров.

person BitTickler    schedule 02.02.2016