Almacenamiento en caché de datos en Mathematica
Hay una operación que consume mucho tiempo y genera un conjunto de datos en mi paquete. Me gustaría guardar este conjunto de datos y dejar que el paquete lo reconstruya solo cuando elimine manualmente el archivo en caché. Aquí está mi enfoque como parte del paquete:
myDataset = Module[{fname, data},
fname = "cached-data.mx";
If[FileExistsQ[fname],
Get[fname],
data = Evaluate[timeConsumingOperation[]];
Put[data, fname];
data]
];
timeConsumingOperation[]:=Module[{},
(* lot of work here *)
{"data"}
];
Sin embargo, en lugar de escribir el conjunto de datos largo en el archivo, el comando Put solo escribe una línea: "timeConsumingOperation []", incluso si lo envuelvo con Evaluate como se indicó anteriormente. (Para ser verdad, este comportamiento no es consistente, a veces el conjunto de datos está escrito, a veces no).
¿Cómo guardas en caché tus datos?