4 ms·
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
by alexcweiner 11y ago
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?
- RodgerTheGreat 11y agoiKe 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 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. Does that make sense?
- alexcweiner 11y agoI think so, 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.
- RodgerTheGreat 11y agoIn iKe's case, the output of draw is used by JavaScript to render to an HTML5 Canvas tag. https://github.com/JohnEarnest/ok/blob/gh-pages/ike/ike.html#L472 https://github.com/JohnEarnest/ok/blob/gh-pages/ike/ike.html... "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.)