Есть ли простой способ преобразовать список кортежей в список с отдельными элементами и наоборот?

#ocaml

#ocaml

Вопрос:

Рассмотрим следующий список:

 [1;2;3;4;5;6;7;8;9]
  

Есть ли встроенная функция или что-то подобное, чтобы изменить этот список на:

 [(1,2,3,4,5,6,7,8,9)]
  

И есть ли другая функция, которую я мог бы использовать, чтобы изменить его обратно на:

 [1;2;3;4;5;6;7;8;9]
  

Комментарии:

1. Можете ли вы объяснить, какую проблему вы пытаетесь решить в первую очередь? Вероятно, мы сможем дать лучший ответ с большим контекстом .

Ответ №1:

Списки и кортежи — это очень разные вещи. Обратите внимание, что ваше второе преобразование (из списка кортежей в список) работает, только если все элементы кортежа одного типа. Также обратите внимание, что каждый размер кортежа имеет свой тип. Итак, если бы существовала функция, которая работала для 9-ти кортежей, она не работала бы для 8-ми или 10-ти кортежей.

В целом это довольно странное и неуклюжее преобразование, поэтому для него нет стандартной функции.