On Sep 4, 2011, at 4:55 PM, Mathieu Bouchard wrote:

On Sun, 4 Sep 2011, Hans-Christoph Steiner wrote:

One possibility is to do a more duck-typing approach. For something that accepts only symbols, it'll happily accept "43" as a symbol. For something that only accept floats, it'll convert the symbol "43" to 43 and accept it as a float. The question here is how to handle it when something expects both floats and symbols. As far as implementing this, we could add to the t_symbol struct a flag to say whether it can be read as a float, and store the float value there too.

Duck-typing isn't about conversions...

Duck-typing is that a float-like thing is anything that «behaves» as a float. Thus, for any atom-type that could be considered float- like, there needs to be a set of functions that apply to any float- like thing.

The term Duck-typing was invented to talk about certain cases of hiding the implementation of something, especially the idea that inheritance and type-checking don't matter as long as the type you want to use has the appropriate functions attached to it.

The duck-typing term only applies to things for which you can attach functions (methods) to types. Thus it can apply to pd objects, but not to pd atoms... t_atomtype isn't similar to t_class... there are no tables of functions to be used for different situations on different atomtypes.

http://en.wikipedia.org/wiki/Duck_typing

In Pd, duck-typing happens with the "dsp" and "loadbang" methods, in which from the standpoint of pd, a dsp-object is any object that has a dsp-method, and a loadbang-object is any object that has a loadbang-method, without any further declarations that might explicitly mean « this class is in the DSPObject (or Loadbangable) category » or anything similar.


I think you are missing the point of what I am saying. I am not saying with we implement a strict duck typing mimicing Ruby or Python. I am saying we can be inspired by that. Pd is not OOP, so trying to force it into an OOP structure does not make sense.

So in the sense of Pd, anything that can be intepreted as a number should be. But that's in conflict with having symbols that have things that can be intepreted as a number. So make Pd consistent, either it needs to be illegal to have symbols that can be interpreted as a number, or maybe symbols that can be interpreted as a number behave like a float when something is expecting a float.

.hc




----------------------------------------------------------------------------

Programs should be written for people to read, and only incidentally for machines to execute.
 - from Structure and Interpretation of Computer Programs


_______________________________________________
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management -> 
http://lists.puredata.info/listinfo/pd-list

Reply via email to