Two Ways To Find An Item In A List With ReasonML
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.