User blog comment:Syst3ms/Funky Notation/@comment-35470197-20181003080925/@comment-35392788-20181004191307

I seriously don't understand what is the problem. Here is how one would evaluate \(2[ [1] ]\). I'll let denote the "cursor"; that is, the entry we are currently looking at with the process.

We start at \(2[([1])]\), with ad = rad = 1. Then, [1] != [0], so case 2 doesn't apply. Then, case 3 applies because \([1]\) is a nested array between square brackets (the nested array being "\(1\)") that is not [0]. We increment ad and rad, which are now both equal to 2, and we jump inside the square brackets at the first (and only) entry of the nested array, and go back to the beginning of the process. We get \(2[ [(1)] ]\). Case 1 and 2 obviously don't apply, and case 3 doesn't apply because the current entry isn't a nested array between a pair of square brackets. Case 4.1 then applies because ad=rad. Then, B = "[0]", so the entire expression evaluates to \((2[ [0] ])[ [0] ]\).

I do not see any issue.