Example: We have a list `[1,2,3,4]`, and a fn `&(&1 >= 3)` I want to get back the `3`, and `[1,2,4]`

Currently I'm doing it like:

```
index = Enum.find_index(list, func)
elem = Enum.at(list, index)
rest = List.delete_at(list, index)

```

This is 3 lines of code that seem like a common pattern that can be done shorter. Is there a better way to achieve something like this?