2009/10/5 Chris McCormick <chris_at_mccormick.cx>:
> The meaning doesn't change with the position of hte boxes, but it does change
> with the connections between the boxes. You can't express those connections
> without the graphics in Pd and Max, whilst you can in other languages. This is
> what makes them "graph"ical languages I beleive.
A grapheme is a graphic.
> I guess the connections replace
> named temporary variables in other languages.
No they replace just putting them next to each other in other languages.
In pd you have [ 10 ]----[ + 1 ]--[ print ] , in other languages you
have something like print(10 + 1).
Of course in pd you can also have something 'next to' more than one thing, i.e.
[ 10 ]---[ + 1]--[ print ]
\
\-----[ + 2 ]--[ print ]
whereas in other languages things can only be 'next to' one other
thing, so you have to give a name to 10, something like:
var foo = 10;
print(foo + 1);
print(foo + 2);
That seems like a drawback until you realise you want to control print
order, and so you have to use a trigger object and it would start
looking like the c code again.
In a functional language you could do something like
mapM_ (putStrLn . show) $ map (\x -> x 10) [(+ 1), (+ 2)]
which is looking (a bit) like the pd patch but with control over
evaluation order.
> Hmmm, technically this is incorrect - you can actually patch with sends and
> receives, but nobdy does. Also you can dynamically patch connections but it's a
> real pain.
Sends and receives are equivalent to giving things names.
> You can also write Pd patches in a text file, but nobody does (sometimes people
> do Dave's replace trick though).
Yes I think pd is tcl under the hood, I had to edit it once when a
copy and paste operation in pd turned up a syntax error.
alex
Received on Mon Oct 05 2009 - 16:07:34 BST