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