Относительно повышения исключения в середине для l oop в Ocaml - PullRequest
0 голосов
/ 17 марта 2020

У меня есть массив в ocaml.array массива опций типа float, например: - [| [| Некоторые 2,3; Нет; Нет |]; [| Некоторые 1,2; Некоторые 2,4; Нет |] |] I должны добавить элементы этого массива. Если я сталкиваюсь с None, тогда мы должны вызвать ошибку, иначе я должен добавить элементы и вернуть их. Поэтому я использую для l oop Я не понимаю, как вызвать исключение в середине l oop и выйти из l oop

Весь код должен быть в Ocaml

1 Ответ

1 голос
/ 17 марта 2020

Ну, мы не собираемся писать ваш код для вас :-). Но выражение:

raise exn

будет работать где угодно (включая a для l oop), чтобы вызвать данное исключение.

Вот пример использования List.iter, который ищет первый нечетное число:

let find_odd list =
    let exception Found_it of int in
    let look k = if k mod 2 = 1 then raise (Found_it k) in
    try List.iter look list; None
    with Found_it n -> Some n
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...