APL имеет примитивную функцию, которая используется для «декодирования» других базовых чисел. В левой части функции вы помещаете значение места, соответствующее каждой цифре, в другую базу чисел. С правой стороны вы поставите вектор цифр вы заинтересованы вЗачем нужно расшифровать APL в дополнительном номере в векторе radix?
Например:.
2 2 2 2 ⊥ 0 1 0 1 ⍝ (What you type in) Convert 0101 form base 2 into base 10
5 ⍝ (What the interpreter computes)
Однако, крайний левый 2 в векторе натальной никогда не используется в любом декодировании вычислений. Например,
¯48 2 2 2 ⊥ 0 1 0 1 ⍝ We can replace the leftmost radix digit with a random number
5 ⍝ Same answer as before
¯48 2 2 2 ⊥ 1 1 1 1 ⍝ Just to prove that the leftmost decode digit is unused
15 ⍝ Correct decode of 1111
65 2 2 2 ⊥ 1 1 1 1 ⍝ Try another random number for testing
15 ⍝ Again, the correct answer is output
Так что, если крайняя левая цифра никогда не используется, почему на Земле требуется APL? (В частности, APL требует, чтобы вектор radix и входной вектор имели одинаковую длину). Используется ли какая-либо функция декодирования, о которой я не знаю?
Возможно, он используется для проверки того, что самая левая цифра находится в диапазоне? – jasonharper
Хм, хорошая мысль. Однако интерпретатор, похоже, не жалуется: '2 2 2 2 ⊥ 44 1 1 1' дает' 359' – Mahkoe