This looks really neat. It may even give me a reason to learn K :)
I'm still not sure I totally understand. Are you suggesting that it would be neat to rewrite things in ok/examples or ok/ike/examples in APL and provide the draw function? Would that be enough to take advantage of what you wrote? What else would be needed?
iKe works by running a K script, which includes both calculating static data and defining some selection of functions. It then calls K functions in response to various events- mouse clicks, key presses, etc. K programs define handlers for the events they're interested in and ignore everything else. The "draw" function is the only one which is strictly required, and it returns a list of tuples which represent some bitmaps to blit to the display. It and "tick" (if present) are called repeatedly and automatically by the system to permit animation and so on.
iKe is designed to be similar in usage both to the kOS "Z" windowing library (details are unknown, but there is one example program available to the public: http://kparc.com/edit.k) and Processing, a Java-based environment aimed at beginners and artists.
I'm suggesting that other APLs could be equipped with a similar setup to what iKe provides- export an APL module with some set of event handlers and at least a definition of a "draw" method, and then use some cross-platform UI toolkit to feed the APL events and render its results for the outside world.
It would be easy to make bitmap data with APL. What is the output of the "draw" being processed by, (or where)? From there, I think it would be easy to see where to wedge in APL.
"draw" specifically returns a list of tuples which each consist of a position (or a vector of positions), a palette of colors and then a single pixel, a vector of pixels or a matrix of pixels. (Call it a rank 0, 1 or 2 bitmap, if you like.)
I'm still not sure I totally understand. Are you suggesting that it would be neat to rewrite things in ok/examples or ok/ike/examples in APL and provide the draw function? Would that be enough to take advantage of what you wrote? What else would be needed?