Live data from Hacker News

Why recursive data structures?

raganwald.com

11–20 of 129 posts

Re: Why recursive data structures?

#13

Reginald is definitely hinting at hylomorphisms here. I'd be curious to see if stream fusion could be achieved in JS for a hylomorphism.

Isn’t `multirec` a function for making hylomorphisms? The recursive dividing is the anamorphism, and the combining of the results is the catamorphism.

As written, however, `multirec` does not efficiently compose. For two constructions to be compatible, they’d have to share their decomposition strategy, including `indivisible` and `divide`. `value` probably composes neatly, but `combine` is a little thorny as the current implementation does two jobs: Processing the data and reconstructing the form of the data.

A composable `multirec` does sound interesting, however. Hmmm...

Re: Why recursive data structures?

#14
I love the word "isomorphic". It's by far the most efficient word in the English language.

When someone else uses it in conversation, it's absolutely guaranteed that the person is a pretentious asshole.

When you use it in a conversation, the same is also true.

It's only ever acceptable in written contexts or if you happen to be Douglas Hofstadter.

Re: Why recursive data structures?

#16

I love the word "isomorphic". It's by far the most efficient word in the English language. When someone else uses it in conversation, it's absolutely guaranteed that the person is a pretentious asshole. When you use it in a conversation, the same is also true. It's only ever acceptable in written contexts or if you happen to be Douglas Hofstadter.

> When someone else uses it in conversation, it's absolutely guaranteed that the person is a pretentious asshole.

I don't get your angle here. You realise an isomorphism is actually a well-defined mathematical concept, right? Are you advocating we use another, plainer word for an isomorphism, or do just naturally get angry when you hear words you don't understand?

Re: Why recursive data structures?

#18

I love the word "isomorphic". It's by far the most efficient word in the English language. When someone else uses it in conversation, it's absolutely guaranteed that the person is a pretentious asshole. When you use it in a conversation, the same is also true. It's only ever acceptable in written contexts or if you happen to be Douglas Hofstadter.

> When someone else uses it in conversation, it's absolutely guaranteed that the person is a pretentious asshole. I don't get your angle here. You realise an isomorphism is actually a well-defined mathematical concept, right? Are you advocating we use another, plainer word for an isomorphism, or do just naturally get angry when you hear words you don't understand?

Considering that TFA pokes fun at the word in the very first footnote, I took this comment to be mostly in jest. But if we’re going to be serious about it, technical jargon is really only appropriate when the speaker is 100% sure the audience 100% understands it.

There is sometimes a problem (I wouldn't use personal terms to describe it, but still) where technical terms are slung about without regard for whether people understand them. That’s poor communication, and as a bad side-effect, it encourages people to misuse the words in ways that don’t match the formal definitions.

In any event, if a comment is criticizing the article for using the word “isomorphism,” we could quite fairly ask if there is a bijective between algorithm and data structure, and whether the morphisms preserve behaviour.

If not... Perhaps TFA is at fault.

Re: Why recursive data structures?

#19

Earlier quoted context omitted.

> When someone else uses it in conversation, it's absolutely guaranteed that the person is a pretentious asshole. I don't get your angle here. You realise an isomorphism is actually a well-defined mathematical concept, right? Are you advocating we use another, plainer word for an isomorphism, or do just naturally get angry when you hear words you don't understand?

Considering that TFA pokes fun at the word in the very first footnote, I took this comment to be mostly in jest. But if we’re going to be serious about it, technical jargon is really only appropriate when the speaker is 100% sure the audience 100% understands it. There is sometimes a problem (I wouldn't use personal terms to describe it, but still) where technical terms are slung about without regard for whether peop…

> But if we’re going to be serious about it, technical jargon is really only appropriate when the speaker is 100% sure the audience 100% understands it.

I disagree. Half the reason I come here is to be exposed to new ideas or concepts. This isn't a lecture, I'll gladly take time to learn about a new concept if it seems relevant.

Re: Why recursive data structures?

#20

The 'multirec' function here looks to have a lot in common with Clojure's transducers. Can anyone more knowledgeable do a compare and contrast?

`multirec` is a combinator, it transforms functions into other functions. `transducers` are "composable algorithmic transformations.”

`multirec` as presented here is not composable the way transducers are composable. It is, however, an extremely stimulating thing to consider.

https://news.ycombinator.com/item?id=13305176

Post reply on HN