So you could write this: TubeBell b => dac; --- while(40::ms => now) { 1 => b.noteOn; 1600::ms => now; 1 => b.noteOff; } --- do { Std.mtof(Std.rand2(0, 3) + 60) => b.freq; } while(1640::ms => now); and have it work like this: TubeBell b => dac; fun void part1() { while(40::ms => now) { 1 => b.noteOn; 1600::ms => now; 1 => b.noteOff; } } fun void part2() { do { Std.mtof(Std.rand2(0, 3) + 60) => b.freq; } while(1640::ms => now); } spork ~ part1(); spork ~ part2(); day => now; -- Tom Lieber http://AllTom.com/ http://infinite-sketchpad.com/
I think being able to spork a block of code like this:
spork ~ {
// some code
}
spork ~ {
// some other code
}
would, to a lesser but still helpful degree, alleviate the issues this
proposal is trying to address. It also has the benefit of recombining
existing syntax rather than introducing new syntax.
spencer
On Tue, Dec 4, 2012 at 6:58 AM, Tom Lieber
So you could write this:
TubeBell b => dac; --- while(40::ms => now) { 1 => b.noteOn; 1600::ms => now; 1 => b.noteOff; } --- do { Std.mtof(Std.rand2(0, 3) + 60) => b.freq; } while(1640::ms => now);
and have it work like this:
TubeBell b => dac;
fun void part1() { while(40::ms => now) { 1 => b.noteOn; 1600::ms => now; 1 => b.noteOff; } }
fun void part2() { do { Std.mtof(Std.rand2(0, 3) + 60) => b.freq; } while(1640::ms => now); }
spork ~ part1(); spork ~ part2(); day => now;
-- Tom Lieber http://AllTom.com/ http://infinite-sketchpad.com/
_______________________________________________ chuck-dev mailing list chuck-dev@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-dev
I like that alternative.
On Thu, Dec 6, 2012 at 7:26 PM, Spencer Salazar
I think being able to spork a block of code like this:
spork ~ { // some code }
spork ~ { // some other code }
would, to a lesser but still helpful degree, alleviate the issues this proposal is trying to address. It also has the benefit of recombining existing syntax rather than introducing new syntax.
spencer
On Tue, Dec 4, 2012 at 6:58 AM, Tom Lieber
wrote: So you could write this:
TubeBell b => dac; --- while(40::ms => now) { 1 => b.noteOn; 1600::ms => now; 1 => b.noteOff; } --- do { Std.mtof(Std.rand2(0, 3) + 60) => b.freq; } while(1640::ms => now);
and have it work like this:
TubeBell b => dac;
fun void part1() { while(40::ms => now) { 1 => b.noteOn; 1600::ms => now; 1 => b.noteOff; } }
fun void part2() { do { Std.mtof(Std.rand2(0, 3) + 60) => b.freq; } while(1640::ms => now); }
spork ~ part1(); spork ~ part2(); day => now;
-- Tom Lieber http://AllTom.com/ http://infinite-sketchpad.com/
_______________________________________________ chuck-dev mailing list chuck-dev@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-dev
_______________________________________________ chuck-dev mailing list chuck-dev@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-dev
-- Tom Lieber http://AllTom.com/ http://infinite-sketchpad.com/
+1 That sounds pretty cool! It seems to indicate perhaps the concept that the { } block could really be shorthand for an unnamed function. Thus, this would also be possible: { ... } => fun void myFun; or even declare here, assign there, like so: fun void myFun; { … } => myFun; the issue of return types is tricky… you could, like in other languages use default to void, unless the block contained a return statement: { 0 => int x; } // function returns nothing { 0 => int x; return x; } // function returns an integer Somehow I doubt that the devs would be into this… I think that this might add execution overhead and violate the principle of something-er-other. But even just being able to assume that a code block could be sporked as a separate shred would be pretty awesome. Still, being able to assign the shred to a variable name would be radical. "function" is an unused reserved word, right? { <<< "hi" >>>; } => function hi; spork ~ hi; Awesome. -Mike -- Michael Clemow http://michaelclemow.com http://abattoirprojects.com On Thursday, December 6, 2012 at 8:29 PM, Tom Lieber wrote:
I like that alternative.
On Thu, Dec 6, 2012 at 7:26 PM, Spencer Salazar
wrote: I think being able to spork a block of code like this:
spork ~ { // some code }
spork ~ { // some other code }
would, to a lesser but still helpful degree, alleviate the issues this proposal is trying to address. It also has the benefit of recombining existing syntax rather than introducing new syntax.
spencer
On Tue, Dec 4, 2012 at 6:58 AM, Tom Lieber
wrote: So you could write this:
TubeBell b => dac; --- while(40::ms => now) { 1 => b.noteOn; 1600::ms => now; 1 => b.noteOff; } --- do { Std.mtof(Std.rand2(0, 3) + 60) => b.freq; } while(1640::ms => now);
and have it work like this:
TubeBell b => dac;
fun void part1() { while(40::ms => now) { 1 => b.noteOn; 1600::ms => now; 1 => b.noteOff; } }
fun void part2() { do { Std.mtof(Std.rand2(0, 3) + 60) => b.freq; } while(1640::ms => now); }
spork ~ part1(); spork ~ part2(); day => now;
-- Tom Lieber http://AllTom.com/ http://infinite-sketchpad.com/
_______________________________________________ chuck-dev mailing list chuck-dev@lists.cs.princeton.edu (mailto:chuck-dev@lists.cs.princeton.edu) https://lists.cs.princeton.edu/mailman/listinfo/chuck-dev
_______________________________________________ chuck-dev mailing list chuck-dev@lists.cs.princeton.edu (mailto:chuck-dev@lists.cs.princeton.edu) https://lists.cs.princeton.edu/mailman/listinfo/chuck-dev
-- Tom Lieber http://AllTom.com/ http://infinite-sketchpad.com/ _______________________________________________ chuck-dev mailing list chuck-dev@lists.cs.princeton.edu (mailto:chuck-dev@lists.cs.princeton.edu) https://lists.cs.princeton.edu/mailman/listinfo/chuck-dev
participants (3)
-
Michael Clemow
-
Spencer Salazar
-
Tom Lieber