Как правильно преобразовать выражения Mathematica без потерь в строку (строка, хранящаяся в памяти, не экспортируемая в файл)?
Я ищу текстовое представление, которое
- сохранит всю информацию, включая сохранение особых (и, возможно, атомарных) объектов, таких как
SparseArray
, Graph
, Dispatch
, CompiledFunction
и т. Д. Например. цикл SparseArray
через это представление должен сохранять его разреженным (и не преобразовывать его в обычный список).
- относительно быстро перебирать (конвертировать туда и обратно).
Достаточно ли для этого ToString[expr, FullForm]
? А как насчет ToString[expr, InputForm]
?
Примечание 1: Это возникло при попытке обойти некоторые ошибки в Graph
, когда внутреннее представление иногда было повреждено. Но мне интересен ответ на общий вопрос выше.
Примечание 2: Save
наверняка сделает это, но записывает в файлы (возможно, это можно решить с помощью потоков) и записывает только определения, связанные с символами.