What about sharing of a signal for multiple function calls in HSC3?

The general problem is, that 'let' constructs cannot be observed by the
executing Haskell functions - and this is intended. That is

  let x = f ...
  in  g x + h x

always leads to the same result as

  g (f ...) + h (f ...)

but maybe with different memory and time consumption.
The first version shares the results, the second does not.

So if write

  let x = f ...
  in  g x + h x

then I assume that HSC won't share 'x' for the calls of 'g' and 'h'.

Is there some function like
 'share :: UGen -> (UGen -> a) -> a'
  which allows that sharing? I guess that 'share' has to use the Proxy
constructor of UGen.
 The above example would be translated to
   share (f ...) (\x -> g x + h x)


Similarly one can also implement feedback with a 'fix' like function, if
this is supported by SuperCollider.
_______________________________________________
haskell-art mailing list
haskell-art@lists.lurk.org
http://lists.lurk.org/mailman/listinfo/haskell-art

Reply via email to