[chuck-users] chuck-users Digest, Vol 17, Issue 11
Scott Wheeler
wheeler at kde.org
Mon Dec 18 20:45:04 EST 2006
kijjasak triyanond wrote:
> Oh.. yes yes & yes!
> this is the OOP idea i'm not familiar with.
> so this is how it works.. wow.
> new item.. and new @ variable.. wow.
> i was always trying to do something like this with other stuffs.
> but i didn't use @ for a new pointer variable..
>
> i had no idea hahah.. thanks Scott. this is so clear.
> and it gives me a lot of new ideas & a breakthrough for more things i
> can do in ChucK!
Actually, if it's being used for instructional purposes, I feel like I
should post the cleaned up version:
class IntStack
{
class Item
{
0 => int value;
Item @ below;
}
Item bottom @=> Item top;
fun void push(int value)
{
Item item;
value => item.value;
top @=> item.below;
item @=> top;
}
fun int pop()
{
top.value => int value;
if(!isEmpty())
{
top.below @=> top;
}
return value;
}
fun int isEmpty()
{
return top == bottom;
}
}
This is one of the syntactic quirks of ChucK -- the following are
equivalent:
Item foo;
new Item @=> Item @ foo;
...which I feel like is an unnecessary ambiguity. The syntax roughly
mimics C++ in both cases, but in C++ those would be quite different.
-Scott
More information about the chuck-users
mailing list