Longest common subsequence

func lcs(xstr, ystr) is cached {

    xstr.is_empty && return xstr
    ystr.is_empty && return ystr

    var(x, xs, y, ys) = (xstr.ft(0,0), xstr.ft(1),
                         ystr.ft(0,0), ystr.ft(1))

    if (x == y) {
        x + lcs(xs, ys)
    } else {
        [lcs(xstr, ys), lcs(xs, ystr)].max_by { .len }
    }
}

say lcs("thisisatest", "testing123testing")

Output:

tsitest