George Locke wrote:
I want to make a library of functions that I can call from any chuck script. If I put those functions in one file, how do I access them from another? It would be great if I could make them into a new namespace, akin to Std.X or Math.X (I am using miniAudicle 0.2.0, not command line.)
(I checked the language specification for the words "include" and "import" and found nothing relevant.)
Machine.add("filename.ck"); loads filename.ck on a separate shred. There is no include/import or namespace mechanism in ChucK.
PS is there a popular/built-in solution for making exponentially distributed, normally distributed, etc random variables?
No. I would love to see such. I ported this just recently but haven't tested it yet // // adapted from org.apache.commmons.math3.random.AbstractRandomGenerator, // which implements the Polar Method, due to G.E.P. Box, M.E. Muller and G. Marsaglia, // as described in D. Knuth, _The Art of Computer Programming_, 3.4.1C. // fun static float nextGaussian() { 0.0 => float v1; 0.0 => float v2; 1.0 => float s; while (s >= 1.0) { 2.0 * Std.randf() - 1.0 => v1; 2.0 * Std.randf() - 1.0 => v2; s = v1 * v1 + v2 * v2; } if (s > 0.0) { s = Math.sqrt(-2.0 * Math.log(s)/s); } v2 * s => cached; return v1 * s; }
PPS If not, I'd be happy to share my work - is there a common way for people to share code like this?
This mailing list, or the ChucK wiki http://wiki.cs.princeton.edu/index.php/ChucK or e.g. github https://github.com/heuermh/lick michael