Skip to content

Latest commit

 

History

History
30 lines (24 loc) · 996 Bytes

two-ways-to-find-an-item-in-a-list.md

File metadata and controls

30 lines (24 loc) · 996 Bytes

Two Ways To Find An Item In A List

The List module has the typical find function that you'd expect any enumerable type to include. It has a very similar find_opt function as well. The difference is in the return types.

When using List.find you'll have to deal with the possibility of a Not_found exception.

switch (List.find(item => item.id == id, my_list)) {
| exception Not_found => print_endline("Not found!")
| item => print_endline("Found it: " ++ item.name)
}

The List.find_opt function has a more familiar interface that doesn't require you to know the details of what exceptions could arise. All you want to know is if it was found or not. This is achieved by having an option('a) return type.

switch (List.find_opt(item => item.id == id, my_list)) {
| None => print_endline("Not found!")
| Some(item) => print_endline("Found it: " ++ item.name)
}

See the List module for more details.