Understanding "Equality and Identity"?

Yes, I agree. If that were the case, it would be the right way to do it. I mean, as an addendum in the most transparent way we come out with.

1 Like

@julian @prko @muellmusik @jamshark70 @scztt @semiquaver
Please continue to suggest edits

Later, I can share a more complete draft and include contributions.

I can send it to a qualified person to review the specific topics for an “authority check.”

agree with @girthrub that the discussion of category theory is more confusing than helpful here. The word “identity” in category theory, as you point out has a different meaning than it does in SC. When we check identity in IdentityDictionary we are not checking how maps compose! Likewise “equality” you might argue is not so meaningful in category theory!

So I would perhaps just skip both the Category Theory and the Haskell material - otherwise at first read this is very helpful indeed (if a little terse!)

2 Likes

I have a quick question regarding the placement of the new document. Initially, I thought I would close the following pull request (PR) upon the opening of a PR with the final version of this draft:

Add more detailed explanations about equality and identity by prko - Pull Request #6385 - supercollider/supercollider - GitHub

However, it appears that you are planning to create an additional help file. Could you please clarify whether you intend to place it in the manual category or the reference category?

Users typically access the help browser by pressing Ctrl/Cmd + D within SC-IDE. Therefore, it is essential to create a document with a title that is easily searchable and placed in a well-exposed category.

Thank you for your attention to this matter.

1 Like

This will be a supplement with the correct terms for the intermediate user to be independent and learn more.

Nothing will change; all the other help will be there. Just an addition for whoever wants.

At the same time I think it’s also a great quick reference. Look how easy also is to find a specific usage!

There are several ways to make this clear.

I think, in this case, the user would need to browse a specific place for this new documentation.

Your work can be optimized for use from code + shortcuts. They will be complementary.

1 Like

I might then put a link to your new document in a note tag.

1 Like

I think it’s all fair enough.

All pieces can be identified using several ways to reinforce their purpose.

I hear you. I will be attentive and aware of all that. Just give enough for people to be able to find something more.

Since I am involved in the philosphy of mathematics and foundational issues, I sympathize with the inclusion of those topics. However, I have to say that to do this properly, this would have to be quite a bit more involved. So to me, it would be best to keep with the simple distinctions:

  • value vs variable and
  • equality vs identity.

It would be good to link to good resources on these concepts in mathematics, such as plato stanforrd on identity or ncatlab on equivalence.

I have made comments to @prko 's pull request, sorry it took so long.

1 Like

As I said, I’d prefer if these references were kept at a minimum in the documentation, also because this is documentation about supercollider and not, say, how computers work, or about category theory. So instead of expanding, I’d suggest to reduce and add references.

I am not sure how this goes together with what prko is about to do, it would be good if this were a joint concentrated, even minimalist, effort.

Then, yes, I can review.

1 Like

That is really great. I will be in touch. The text here is to test style and how to organize, but it’s not all I have.

The non-trivial nature of both foundational concepts in Category Theory—identity and composability—explains why it is often a powerful tool for computer hackers. Although this document may not be the place to explore this, touching it would add a positive trace.

There must exist a way to make such a document genuinely helpful. We will figure this out.

Yes. I will revisit it; right now, I don’t remember much. Me and @prko already noted how (this document and his work) they could be complementary.

I miswrote it before (rereading my GH message). It does not mean something different. I would say instead that it is always a non-trivial thing, and that’s all the fun of it.

You’ll find interpretations of category theory (especiylly higher category theory), where identity is only the identity arrow (like in sclang ===) and equivalence has an interpretation as a tower of higher morphisms of compositions of maps and inverses (a bit like as if double dispatch in sclang would happen to negotiate ==). This is why I think it is better not to have a part on category theory in the helpfile: the issue is just too complicated for this, and currntly a subject of research.

1 Like

I agree that higher category theory can become quite involved—especially once we start discussing equivalences as chains of higher morphisms rather than identity morphisms. I’m also inclined to keep the primary documentation simple and not dive too deeply into advanced categorical notions.

There is no debate about that :slight_smile: Guys, calm down. It’s not an option. Never was.

At the same time, I think it might be helpful to include at least a short note for users who want to understand that “identity” in a programming sense does not necessarily match things like “identity morphism” in category theory. We can emphasize that it’s merely a pointer for those curious to dig deeper and direct them to further reading if they want complete details.

In other words, I don’t want to burden the help file with full‐blown category theory; I think some may have this extravagant idea about me.

A more straightforward statement, such as “Hey, these terms may not mean exactly what they do in everyday programming,” could inspire some users. That’s already a positive thing.

That by itself seems a quite reasonable summary. Perhaps state this in the help file and leave it at that.

hjh

1 Like

I understand.

After reading all the reactions, I realized that the community seems open to supplementary documentation but with a careful scope.

@smoge
Is it possible to replace Haskell with SAPF?
Or is it possible to add SAPF in parallel to Haskell?

Neither of them is necessary, to be honest. It’s not important.

My problem is of another nature. This kind of writing seems to imply there is something fundamental in the way one language implements those things. It can be C++, supercollider, etc.

In reality, there is nothing fundamental about any of that. This is one of the reasons that so many empty discussions happen: people read things of little importance from different language implementations.

1 Like