[PD] what distinguishes a numeric symbol as an argument?
Hans-Christoph Steiner
hans at eds.org
Fri Jun 1 02:33:31 CEST 2007
I've tried to document odd behavior in Pd. Here's my collection:
http://pure-data.cvs.sourceforge.net/pure-data/doc/additional/
messageoddness/
.hc
On May 31, 2007, at 10:58 AM, Matteo Sisti Sette wrote:
> Hi list
>
> I understand that [symbol 43( is not the same as [43( as it is
> interpreted
> as a symbol, not a float.
> So I can send the message [symbol 43( to a symbol atom, or to any
> object
> that works with symbols, and it will be handled just as if it was
> [symbol
> dog(, right?
>
> However, when this symbol is inserted as an argument into a
> message, or
> packed into a list, what is it that distinguishes it from the
> number 43??
>
> Let's make a practical example.
> I want to dynamically set the label of a canvas so that it shows a
> number.
> Suppose the receive symbol of the canvas is mycanvas_receive.
>
> (1) The following doesn't work:
>
> [label 43( (*)
> |
> [s mycanvas_receive]
>
>
> (2) Nor does this:
>
> [43( (or replace this with a number box)
> |
> [label $1( (*)
> |
> [s mycanvas_receive]
>
>
> (3) Nor this:
>
> [symbol 43(
> |
> [label $1( (*)
> |
> [s mycanvas_receive]
>
>
> (4) While this DOES work
>
> [43( (or replace this with a number box)
> |
> [makesymbol %d]
> |
> [label $1( (*)
> |
> [s mycanvas_receive]
>
>
> However, I can't see any difference between the output of the
> message box
> (*) in (4) and in (1-3).
> If I connect that message box to a [print] in any of the four examples
> above, the output is always "label 43".
>
> It seems that the message that is generated in example 4 is
> intrinsically
> but invisibly different from the previous 3 examples.
>
> I may deduce that each argument of a message has an associated type
> that
> somewhat depends on its "history" and cannot always be "seen"...
> which I
> don't like but may be an explanation.
>
>
> However, this does not explain the following:
>
> * Isn't the output of [makefilename] in example (4) just the same
> as [symbol
> 43( of example 3?? Then why doesn't example 3 work as well???
>
> Also, consider this:
>
> (5)
> [label 43(
> |
> [unpack s f]
>
> and this
>
> (6)
> [symbol 43(
> |
> [label $1( (**)
> |
> [unpack s f]
>
> In example (5), the second outlet of unpack outputs float 43, which is
> (somewhat) coherent with the fact that example (1) didn't succeed
> to set the
> canvas label
> However, in example (6) unpack gives the error "unpack: type
> mismatch"... so
> I guess that the "$1" (i.e. the "43") in (**) is seen as a symbol,
> not a
> float....... but then, again: why didn't example (3) set the canvas
> label???
>
>
> Anybody can help me to understand the underlying logic?
>
>
> Oh shit!!!!!!!
>
> Now I see that the following:
> [symbol 43(
> |
> [print]
>
> just outputs "symbol "
>
> while
> [43(
> |
> [makesymbol %d]
> |
> [print]
>
> outputs "symbol 43" as expected....
>
> isn't it weird??????
>
>
> Well... again, if anyone can help me to undertsand this, I'll be
> grateful
>
>
> Thank you
> m.
>
>
>
> --
> Email.it, the professional e-mail, gratis per te: http://
> www.email.it/f
>
> Sponsor:
> Vacanza in Grecia: 7 giorni con trattamento all inclusive in
> albergo 4 stelle a soli 479 Euro
> Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=6607&d=31-5
>
> _______________________________________________
> PD-list at iem.at mailing list
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/
> listinfo/pd-list
------------------------------------------------------------------------
----
Terrorism is not an enemy. It cannot be defeated. It's a tactic.
It's about as sensible to say we declare war on night attacks and
expect we're going to win that war. We're not going to win the war
on terrorism. - retired U.S. Army general, William Odom
More information about the Pd-list
mailing list