Hi.
I am getting this error when using ERR in Verse Code.
Any thoughts on why?
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:
A:= ArrayRace(LeftArray, Function)
B:= 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()
Thanks for the response. I am just not sure how to resolve it.
The code is from here:
So interesting. That’s what it is. It was the name of the Project folder. I didn’t know that would cause that. Thanks!!!