問題:是否可以在不評估內容的情況下導入使用DumpSave
保存的MX文件?是否可以在不評估內容的情況下導入MX文件?
讓我說明:
讓我們創建一個變量,data
:
In[2]:= data = Range[10]
Out[2]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
它可以出口到從MX進口未做任何定義:
In[3]:= [email protected][data, "MX"]
Out[3]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
但是如果我們使用DumpSave
?
In[4]:= DumpSave["data.mx", data]
Out[4]= {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}
(和明確data
)
In[5]:= Clear[data]
在重新導入,則返回什麼:
In[6]:= Import["data.mx", {"MX", "HeldExpression"}]
但變量data
再次變爲定義,因爲如果我們使用Get
。
In[7]:= data
Out[7]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
我沒有料想到會得到這樣的Hold[data = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}]
,即類似於將使用Save
時被寫入到一個.m
文件的東西。
也許是技術上無法避免被作出的定義,因爲DumpSave
和Get
直接操縱內核態的,而不是寫作和閱讀的定義可求像Save
呢?這只是一個猜測。
(編輯)請注意:我不是在可導入「保持」的方式進行保存。我已經可以使用Export
。我期待導入以前的DumpSave
d MX文件。
回答看來這是不可能做到這一點,除非MX文件保存到的特別允許。
@Szabolcs我添加了一些代碼來說明問題的答案。 – 2012-01-04 19:20:25