Renderingen-US

Experimental through version 1. Version 0 was alpha. This is the first language release: the interface is relatively stable, not frozen. Nothing is promised stable until version 2.

reducta-arg

Translation status: English reader-locale proof. Term names and code fences follow the en pack; supporting prose may still be English.

Syntax:

Category#

collection

None.

Examples#

radix/corpus/summa/reducta-arg.fab (canonical · concept)#

fn optimum(tensor<f32, [4]> a) → int {
    return reduce via argmax from a
}

fn infimum(tensor<f32, [4]> a) → int {
    return reduce via argmin from a
}

fn optimum_corpus(tensor<f32, [4]> a) → int {
    return reduce via argmax from a at [i] let s {
        return 0.0 - s
    }
}

fn optimum_nan(tensor<f64, [4]> a) → int {
    return reduce via argmax from a
}

fn optimum_plana(tensor<f32, [2, 3]> m) → tuple<int, int> {
    return reduce via argmax from m at [i, j]
}

fn infimum_plana(tensor<f32, [2, 3]> m) → tuple<int, int> {
    return reduce via argmin from m at [i, j]
}

fn optimum_vacua() → int ∪ none {
    let tf32[0] v ← empty
    return reduce via argmax from v at [i]
}

fn optimum_vacua_vel() → int {
    let tf32[0] v ← empty
    return reduce via argmax from v at [i] coalesce 7
}

main {
    let list<f32> flat ← [3.0, 1.0, 3.0, 2.0]
    let tf32[4] a ← flat ↦ tensor<f32, [4]>
    print optimum(a)
    print infimum(a)
    print optimum_corpus(a)
    let list<f64> flat_nan ← [nan, 3.0, 1.0, 3.0]
    let tf64[4] a_nan ← flat_nan ↦ tensor<f64, [4]>
    print optimum_nan(a_nan)
    let list<f32> flat2 ← [1.0, 5.0, 2.0, 5.0, 0.0, 1.0]
    let tf32[2, 3] m ← flat2 ↦ tensor<f32, [2, 3]>
    let tuple<int, int> hi ← optimum_plana(m)
    let tuple<int, int> lo ← infimum_plana(m)
    print hi[0]
    print hi[1]
    print lo[0]
    print lo[1]
    print optimum_vacua()
    print optimum_vacua_vel()
}

Expected output:

0
1
1
1
0
1
1
1
nihil
7