> Would you mind to explain shortly what co-iteration is?
it's funny how allergic hn is to reading. it's literally completely/succinctly/adequately illustrated in the Figure 1; you have a sparse array that's represented using csr format (compressed sparse row) and another that's represented using what they call "sparse band" format (basically just the start and stop of a contiguous run of nonzero values) and you want to take the dot product between them. so you iterate through both of them at the same time using one loop and you want to do this efficiently. that's the "co-ness" of it - stepping through both using one loop efficiently. that's what distinguishes it as a paradigm from just iteration - doing both at the same time better than if you just iterated over the first using conventional techniques and also iterated over the second using conventional techniques.
> Usually "co-things" are "things backwards". But I can't imagine any "inversion" of iteration.
this has nothing to do with categories or cocategories or monads or whatever - this is about expressive representations and codegen of efficient code.
all this and more available for the low low price of "just reading the paper" instead of guessing.
But frankly one does not always have time for a paper.
A quick online search didn't yield any useful results so I've asked here.
Given the answers the topic seems confusing anyway. There are at least two quite different interpretations of "co" here in play. So I think I didn't ask anything obvious, and the answers are likely also of interest to other people who didn't had time to read the paper.
Thanks for the summary. Now I don't need to read the paper, as your summary is clear and concise, while jumping to figure 1 and trying to understand that without reading the 2.5 pages before it was not possible for me.
So just loose the snark and keep working for free for us!
it's funny how allergic hn is to reading. it's literally completely/succinctly/adequately illustrated in the Figure 1; you have a sparse array that's represented using csr format (compressed sparse row) and another that's represented using what they call "sparse band" format (basically just the start and stop of a contiguous run of nonzero values) and you want to take the dot product between them. so you iterate through both of them at the same time using one loop and you want to do this efficiently. that's the "co-ness" of it - stepping through both using one loop efficiently. that's what distinguishes it as a paradigm from just iteration - doing both at the same time better than if you just iterated over the first using conventional techniques and also iterated over the second using conventional techniques.
> Usually "co-things" are "things backwards". But I can't imagine any "inversion" of iteration.
this has nothing to do with categories or cocategories or monads or whatever - this is about expressive representations and codegen of efficient code.
all this and more available for the low low price of "just reading the paper" instead of guessing.