I'm creating a visual programming language. I base on functional programming paradigm, because I believe that declarative thing should be mapped to visual more easily. I mostly done with conceptual design but there is one thing that I need to make that language full-featured and I still can't come to the solution: higher-order functions (the functions that take one or more other functions as its arguments and do whatever it wants but mostly apply that functions to some data and do something with their outputs).
Map is a higher-order function, stuff in white dashed border is its function argument, orange dot with hint - argument of that "child" function, and the rightmost dark-cyan is the output of "child" function. This solution, however, have some obvious weak points. First of all you need a hand-drawn hint, to figure out where input is. Second - what if you have more than one such unconnected orange dots (e.g. optional arguments)? Or more than one unconnected outputs (e.g. some side-effect functions are used)? And finally, what if "child" function need more then one argument (e.g. for
Map it can be
index so you can not only transform an element of the array but also do something based on it's position in that array) - it's kind of
ಠ_⊙ what the heck will happen in that situation at all...
So, maybe you have some kind of hints, insights or better examples? Or... fresh eye at least.