Допустим, у меня есть список, содержащий список int и int *. Как бы я мог извлечь значение int из этого списка? Вы можете сопоставить шаблон для главы списка или хвоста, но как бы вы извлекли int?Извлечь Значение из списка списков в OCaml
ответ
Вы всегда можете просто сделать две картины матчей подряд
match [[1;2]; [3;4]] with
| (firstrow::_) -> (
match firstrow with ->
| (x :: _) -> x
| [] -> 0)
| _ -> 42
Its также хорошо писать картины совпадает с несколькими уровнями.
match [[1;2]; [3;4]] with
| (x::_)::_ -> x
| ([]::_) -> 0
| _ -> 42
При этом не обязательно использовать сопоставление образцов для доступа к элементам списка. Вы также можете использовать List.map или одну из многих других функций управления списками в зависимости от того, что вы на самом деле пытаетесь сделать.
Я не понимаю, какое значение вы хотите извлечь точно, предположим, что вы хотите извлечь все целые числа в своем int list list
и не хотите писать сопоставления шаблонов с несколькими уровнями, вы можете сначала использовать функцию List.flatten
чтобы получить int list
, а затем делать все, что вы хотите сделать:
let l = List.flatten [[1; 2]; [3; 4]] in (* l = [1; 2; 3; 4] *)
List.iter print_int l (* iter, map or any other function *)
, если вы думаете, что ваш список списков в качестве матрицы и у вас есть столбец строки вы хотите
List.nth col (List.nth ln matrix)
List.nth
приятно использовать в этом случае, с информацией, которую вы получили от меня, я думаю, что это то, что вы хотите
- 1. Изменение списка списков в OCaml
- 2. Печать списка списков в OCaml
- 3. Получить элемент из списка списков ocaml
- 4. OCaml и создание списка списков
- 5. Транспонирование списка целых списков в Ocaml
- 6. Как извлечь значение из типа OCaml
- 7. Извлечь значения из списка списков с R
- 8. Извлечь данные из списка списков [R]
- 9. Квадратный список списков - ocaml
- 10. Извлечь информацию из списков
- 11. OCaml: Список списков
- 12. OCaml - Как мне вернуть список списков из списка?
- 13. Вычисление значений из списка в OCaml
- 14. извлечение из списка списков
- 15. Извлечь данные из вложенных списков
- 16. Как извлечь имена из списков в R
- 17. Как распечатать список списков в OCaml
- 18. Как извлечь кортежи из списка списков в Haskell
- 19. Сведение список списков в OCaml
- 20. Объединение столбца списков в OCaml
- 21. Извлечь значение незнакомого списка
- 22. Как извлечь информацию из записи в OCaml
- 23. Регистрация «colums» из списка списков в «строк» из списка списков
- 24. словарь списков из списка списков
- 25. Добавление двух списков в OCaml
- 26. OCaml «чтение» матрицы (список списков)
- 27. Печать вложенных списков в OCaml
- 28. Как передать бинарное дерево для списка списков в OCaml?
- 29. Перечисление всех пар из двух ленивых списков в OCaml
- 30. Нужно сопоставить кортеж из списка в OCaml
Откуда вы знаете, какой из них хотите извлечь? Это поможет, если вы приведете пример ввода и нужный результат. –