VerseIsland
FeedLearnLeaderboardGuidesReferenceExploreSearchDocsVerse Library
Sign in
Feed Learn 📖 Codex Leaderboard Guides Reference Explore Search Docs Verse Library
Browse Community Snippets›Verse Language·Up to Community Snippets · Verse Language·94 of 114 in Verse Language

Sync And Race Across Array Elements

143,290 Views

Report

  • using { /Verse.org/Simulation }
    
    # ArrayRace will call the Function argument for each element in the Array and wait for only one of the async functions to complete, canceling all the rest.
    # A divide-and-conquer concurrency algorithm that divides an array into two and races between the two subarrays.
    # This is a recursive implementation, where the function calls itself to race between the divided arrays.
    # The base case (the condition to stop the recursion) is the array has only one element.
    # This is a generic implementation using parametric types, so you can provide your own type and your own async function as arguments.
    ArrayRace(Array:[]t, Function(Element:t)<suspends>:u where t:type, u:type)<suspends>:u=
        # If more than two elements in the array, then split the array in half,
        # and race between the subarrays recursively.
        if:
            Array.Length > 1
            Mid := Floor(Array.Length / 2)
            LeftArray := Array.Slice[0, Mid]
            RightArray := Array.Slice[Mid]
        then:
            race:
                ArrayRace(LeftArray, Function)
                ArrayRace(RightArray, Function)
        else if:
            First := Array[0]
        then:
            # Grab the only element in the array and call the async function with it as the argument.
            Function(First)
        else:
            # A race with no subtasks never completes, so sleep infinitely and call Err() because we shouldn't return a value here.
            Sleep(Inf)
            Err()

You're reading a preview

The full reference is free for BrainDeadGuild Discord members — sign in to read it all, or open the original at the source.

Sign in with Discord — free for members Read the original at Epic Games documentation

Sign in with your BrainDead.TV / BrainDeadGuild Discord account for full access.

Guided course

Add this to your free study plan — we’ll suggest related material and stitch it into one compile-checked lesson.

Keep exploring
More in Verse Language · 94 of 114
Prev
fortnite fixed sized generic queue implementation w circular option
Next
fortnite check map value doesn t exist

Source

Epic Games documentation

View original

Last updated 2026-07-26T12:05:32.643657+00:00

VerseIsland· an archipelago of Verse & UEFN knowledge
🗺️ Island atlasLearnGuidesHistoryAbout & PressSources & LicensingPrivacy PolicyTermsStatus

Not affiliated with Epic Games. Fortnite, UEFN, Unreal Engine, and Verse are trademarks of Epic Games, Inc. Content is attributed to its source — see Sources & Licensing.

🦜

Scout · your island guide

The Isle of Verse