In something like C++ you could create a scope like so:

{
	// Do something neat here
}

I was wondering about having or maybe even requiring a scope keyword, which might look like this:

scope
{
	// Do something neat here
}

This seems even more relevant in an indentation sensitive language like python:

scope:
	pass

Interested to hear any opinions, TIA.

  • Kissaki@programming.dev
    link
    fedilink
    English
    arrow-up
    2
    ·
    9 months ago

    What’s the intention and use case for this?

    Only for empty, unlabeled, untyped scopes? Or would I write

    function a() scope {}
    

    Is it necessary for scope-ending cleanup of resources? If so, I would consider whether there are not better solutions for those.

    Is it for code structuring? I would also consider what use a scope keyword has then, and what the alternatives are.

    I don’t see how adding a scope label helps with anything.

    • librecat@lemmy.basedcount.comOP
      link
      fedilink
      arrow-up
      1
      ·
      9 months ago

      To be honest, the only use case I really thought of was something like unlocking a mutex at the end of a scope or maybe a file.

      • anton
        link
        fedilink
        arrow-up
        3
        ·
        edit-2
        9 months ago

        In that case managed languages like python and java combine that functionality with try blocks. This is generally called try with resources.
        C# has the using keyword that just uses local scope.

        The commonality between them is declaring which resource is managed, not just everything is a scope. Imagine you wanted to manage one resource and return another.