Эквивалент List.exists для Db - PullRequest
4 голосов
/ 13 июля 2011

Я использовал List.exists (), я хотел бы знать, есть ли эквивалент для Db.

Если у меня есть функция f (e): bool, я хотел бы знать, существует ли хотя бы один элемент e с f (e) -> true. В настоящее время я использую Db.intmap_fold_range (), но он перебирает все Db, в то время как было бы лучше, чтобы выступления останавливались при первом возвращении true.

1 Ответ

3 голосов
/ 14 июля 2011

Полагаю, ваша БД является IntMap, если вы можете использовать Db.intmap_fold_range.

Это пример кода:

// Testing function
f(key, val) = key == 42

// Check existence in "mymap"
res = IntMap.exists(f, /mymap)

Если вы посмотрите на исходный код, вы можете увидетьчто оно реализовано для сворачивания только на нужные элементы :) (Файл: stdlib / core / map / map.opa )

...