dyon 0.38.0

A rusty dynamically typed scripting language
Documentation
fn main() {
    seasons := [
        season(players: ["Ronaldo", "Hughes", "Solskjear"], goals: [20, 30, 40]),
        season(players: ["Ronaldo", "Solskjear", "Beckham"], goals: [30, 5, 60])
    ]
    top_players := []
    loop {
        top := any j {
            // Skip seasons we already have.
            if any i {top_players[i].season == j} {continue}
            max k {
                // Add name of player to secret.
                explain_where(seasons[j].goals[k], seasons[j].players[k])
            } <= 50
        }
        if top {
            player := why(top) // `[season, player_index, player_name]`
            season := player[0]
            name := player[2]
            push(mut top_players, {name: name, season: season})
        } else {
            break
        }
    }

    top_all_time := max i {
        explain_where(sum j, k {
            if seasons[j].players[k] != top_players[i].name {continue}
            seasons[j].goals[k]
        }, top_players[i].name)
    }
    println(top_all_time)
    player := where(top_all_time) // `[top_player_index, name]`
    name := player[1]
    println(link {
        "***** TOP PLAYER OF ALL TIME *****\n"
        "(in a season where no one scored more than 50 goals)\n"
        "name: "name"\n"
        "total goals: "top_all_time
    })
}

fn season__players_goals(players: [Player str], goals: [Goal f64]) -> Season {} {
    return {players: clone(players), goals: clone(goals)}
}