eo-phi-normalizer-3.0.0: data/0.49.3/org/eolang/tuple.phi
{⟦
org ↦ ⟦
eolang ↦ ⟦
tuple(head, tail) ↦ ⟦
empty ↦ ⟦
length ↦ 0,
at(i) ↦ ⟦
φ ↦ Φ̇.error("Can't get an object from the empty tuple")
⟧,
with(x) ↦ ⟦
φ ↦ ξ.ρ.ρ.ρ.tuple(ξ.ρ, ξ.x)
⟧
⟧,
length ↦ ⟦
len ↦ Φ̇.dataized(ξ.ρ.head.length.plus(1)).as-bytes,
φ ↦ Φ̇.number(ξ.len)
⟧,
at(i) ↦ ⟦
len ↦ ξ.ρ.length,
idx ↦ Φ̇.dataized(ξ.i).as-bytes,
index ↦ Φ̇.dataized(0.gt(ξ.idx).if(ξ.len.plus(ξ.idx), ξ.idx)).as-bytes,
φ ↦ 0.gt(ξ.index).or(ξ.len.lte(ξ.index)).if(
Φ̇.error("Given index is out of tuple bounds"), ξ.at-fast(ξ.ρ, ξ.len)
),
at-fast(tup, len) ↦ ⟦
φ ↦ ξ.len.plus(-1).gt(ξ.ρ.index).if(
ξ.ρ.at-fast(ξ.tup.head, ξ.len.plus(-1)), ξ.tup.tail
)
⟧
⟧,
with(x) ↦ ⟦
φ ↦ ξ.ρ.ρ.tuple(ξ.ρ, ξ.x)
⟧
⟧,
λ ⤍ Package
⟧,
λ ⤍ Package
⟧
⟧}