[Haskell-cafe] Functional GUI combinators for arbitrary graphs ofcomponents?

Paul Hudak paul.hudak at yale.edu
Sat Dec 2 16:55:23 EST 2006


If you consider just Dags, I believe that this question is equivalent to 
asking what set of combinators will allow you to create an arbitrary 
composition of functions that allow sharing inputs and returning 
multiple results.  And I think that one answer to that is the set of 
combinators that make up the Arrow class.  If you want to include 
recursion (i.e. cycles), then you'd have to throw in ArrowLoop (although 
that might only provide a nested form of cycles).  It's in this sense 
that Fudgets is analogous to Fruit.

    -Paul


Brian Hulley wrote:
> Brian Hulley wrote:
>> Anyway to get to my point, though all this sounds great, I'm
>> wondering how to construct an arbitrary graph of Fudgets just from a
>> fixed set of combinators, such that each Fudget (node in the graph)
>> is only mentioned once in the expression. To simplify the question,
>> assume we have the following data structure to describe the desired
>> graph:
>>    data LinkDesc a
>>        = Series a a
>>        | Broadcast a [a]
>>        | Merge [a] a
>>
>>    type GraphDesc a = [LinkDesc a]
>
> The above is more complicated than necessary. The problem can be 
> captured by:
>
>    type GraphDesc a = [(a,a)]
>
> Brian.



More information about the Haskell-Cafe mailing list