a₁.;A×?≜ẹ+
Попробуйте онлайн!
Это отправка функции, которая принимает ввод через .
и производит вывод через ?
(в противоположность обычному соглашению; все функции брахилога имеют ровно два аргумента, которые могут быть аргументами ввода или вывода, но язык не требует применения какого-либо конкретного аргумента). Обычно мы не считаем соглашения об использовании аргументов актуальными в PPCG .
объяснение
В предыдущей версии этого решения был специальный случай ( Ḋ|
т. Е. «Буквально возвращать цифры») для однозначных чисел, но вопрос, по-видимому, гласит, что вам не нужно проверять это (спасибо @DLosc за это), поэтому я удалил Это. (Написанное решение не будет работать с однозначными числами, поскольку Brachylog не будет рассматривать 1 как возможность для неизвестного в умножении предотвратить бесконечные циклы; его умножения произвольной арности.)
Таким образом, этот ответ теперь относится к прямому переводу спецификации. Начиная с ?
(выход / число, которое мы пытаемся найти; предикат брахилога всегда неявно начинается с ?
), мы используем, a₁.
чтобы утверждать, что он имеет .
(вход) в качестве суффикса. Тогда ;A×?
означает, что мы можем умножить ( ×
) результат на что-то ( ;A
), чтобы произвести ?
(вывод). Наконец, ẹ+
sums ( +
) для digits ( ẹ
) ?
, и по умолчанию в конце каждой программы на брахилоге создается неявное утверждение, которое дает конечный результат .
. Другими словами, эта программа " .
является суффиксом ?
, .
умноженным на что-то ?
, .
является цифрой суммы?
", что очень близко к буквальному переводу оригинальной программы.
Это ≜
необходимо для выполнения требования о сумме цифр. Я предполагаю, что кое-что о ẹ
не любит неизвестных, поэтому он ≜
говорит Brachylog использовать метод грубой силы для этой части программы, а не алгебры.