eval and concatenating strings
hi again here i am with couple of questions again. is there a way to concatenate strings? I am trying different ways with no much luck and i have checked the docs but i could not find a way to it. another issue is: is there a way to eval a string as code like in python or actionscript? The questions come from some commands i am forced to type over and over despite of being almost identical recv.event("/0/mute, i") @=> OscEvent mute0_osc; the only difference of the number (0 in this case) for each of the sample players i have constructed Would it be possible to create variables on the fly from concatenated strings? I mean something like (in wish code) for (0 => int n; n < 8; n++){ "/" + Std.itoa(n) + "/mute, i" @=> string address; //concatenate string recv.event(address) @=> OscEvent Std.eval("mute"+ Std.itoa(n) + "_osc"); //concatenate and eval string } thanks enrike
Hi Enrike, On Nov 13, 2006, at 9:08 PM, altern wrote:
hi again
here i am with couple of questions again.
is there a way to concatenate strings? I am trying different ways with no much luck and i have checked the docs but i could not find a way to it.
Not at the moment... this is a high priority on the ChucK wish list, however.
another issue is: is there a way to eval a string as code like in python or actionscript?
Also not at the moment... with string operations and the also highly desirable file i/o this would be somewhat possible to do, though.
The questions come from some commands i am forced to type over and over despite of being almost identical
recv.event("/0/mute, i") @=> OscEvent mute0_osc;
the only difference of the number (0 in this case) for each of the sample players i have constructed
Would it be possible to create variables on the fly from concatenated strings? I mean something like (in wish code)
for (0 => int n; n < 8; n++){ "/" + Std.itoa(n) + "/mute, i" @=> string address; //concatenate string recv.event(address) @=> OscEvent Std.eval("mute"+ Std.itoa(n) + "_osc"); //concatenate and eval string }
I think code like this is really powerful and really useful, but unfortunately it sort of throws a big huge wrench into the type systems of languages like ChucK. So, to be honest, I don't see something like this usage of Std.eval becoming possible in the near future. For what it's worth, once string operations are fully implemented, something resembling this will be possible: OscEvent mute_osc[8]; for (0 => int n; n < 8; n++){ "/" + Std.itoa(n) + "/mute, i" @=> string address; //concatenate string recv.event(address) @=> mute_osc[n]; } This is similar to your wish code, though not as dynamic or flexible of course. thanks, spencer
thanks
enrike
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
hi Spencer Salazar wrote:
Hi Enrike,
On Nov 13, 2006, at 9:08 PM, altern wrote:
hi again
here i am with couple of questions again.
is there a way to concatenate strings? I am trying different ways with no much luck and i have checked the docs but i could not find a way to it.
Not at the moment... this is a high priority on the ChucK wish list, however.
another issue is: is there a way to eval a string as code like in python or actionscript?
Also not at the moment... with string operations and the also highly desirable file i/o this would be somewhat possible to do, though.
The questions come from some commands i am forced to type over and over despite of being almost identical
recv.event("/0/mute, i") @=> OscEvent mute0_osc;
the only difference of the number (0 in this case) for each of the sample players i have constructed
Would it be possible to create variables on the fly from concatenated strings? I mean something like (in wish code)
for (0 => int n; n < 8; n++){ "/" + Std.itoa(n) + "/mute, i" @=> string address; //concatenate string recv.event(address) @=> OscEvent Std.eval("mute"+ Std.itoa(n) + "_osc"); //concatenate and eval string }
I think code like this is really powerful and really useful, but unfortunately it sort of throws a big huge wrench into the type systems of languages like ChucK. So, to be honest, I don't see something like this usage of Std.eval becoming possible in the near future.
Sure, i understand that ChucK is not python. There are different tools for different tasks. I was just wondering if something like this would be possible. I am just trying to get an overview of the ChucKian way of thinking. I realised that some stuff is not in the documentation (maybe im wrong?) like Std.itoa() so I thought maybe there is other undocumented commands as well.
For what it's worth, once string operations are fully implemented, something resembling this will be possible:
OscEvent mute_osc[8]; for (0 => int n; n < 8; n++){ "/" + Std.itoa(n) + "/mute, i" @=> string address; //concatenate string recv.event(address) @=> mute_osc[n]; }
This is similar to your wish code, though not as dynamic or flexible of course.
sounds good enough to me. thanks enrike
thanks, spencer
thanks
enrike
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
Sure, i understand that ChucK is not python. There are different tools for different tasks. I was just wondering if something like this would be possible. I am just trying to get an overview of the ChucKian way of thinking. I realised that some stuff is not in the documentation (maybe im wrong?) like Std.itoa() so I thought maybe there is other undocumented commands as well.
From browsing the source, I would say that "yes", there are some undocumented chuck commands that can be found. As with most projects, the documentation lags behind the code, and when that's the case, it's best to 'Use the source, Luke'.
I was also hoping for an eval mechanism in chuck so I could do some metaprogramming, but I don't think I found one... -- burton samograd kruhft@gmail.com kruhft.boldlygoingnowhere.org www.myspace.com/kruhft
participants (3)
-
altern
-
Burton Samograd
-
Spencer Salazar