Tasks
Scoring
Imported from the upstream Vibescript examples at tasks/scoring.vibe and ready for browser discovery.
Source
tasks/scoring.vibe
# vibe: 0.4
def score_user(user)
user[:score] * user[:weight]
end
def score_users(users)
Tasks.map(users, max: 2, with: :score_user)
end
def summarize_users(users)
scores = score_users(users)
{
scores: scores,
total: scores.sum
}
end
def prepare_user(user)
"prepared:" + user[:id]
end
def prepare_pair(first, second)
Tasks.run(max: 2) do |tasks|
left = tasks.spawn(:prepare_user, first)
right = tasks.spawn(:prepare_user, second)
tasks.wait
left_result = left.value
right_result = right.value
return [left_result, right_result]
end
end
Output
This example does not define a run entrypoint yet.