Необходимо в многозначном числе вывести k-ую цифру - Lisp
Формулировка задачи:
Необходимо в многозначном числе вывести k-ую цифру, например есть число 126387, при k=4 должно вывести 3. Если можно, на Xlisp
Решение задачи: «Необходимо в многозначном числе вывести k-ую цифру»
textual
Листинг программы
(defun digit (n m) (nth (- n 1) (mapcar #'parse-integer (map 'list #'string (write-to-string m))))) > (digit 3 12345) 3
Объяснение кода листинга программы
В данном коде определена функция digit, которая принимает два аргумента - n и m.
Внутри функции digit происходит следующее:
nth- это функция, которая возвращаетk-ый элемент из списка. В данном случае,- n 1означает, что мы берем элемент списка, который находится на позицииn-1.mapcar- это функция, которая применяет функцию к каждому элементу списка. В данном случае, мы применяем функциюparse-integerк каждому элементу списка.map- это функция, которая применяет функцию к каждому элементу списка. В данном случае, мы применяем функциюstringк каждому элементу списка.write-to-string- это функция, которая преобразует число в строку. Таким образом, когда мы вызываем функциюdigitс аргументами3и12345, она возвращает3, так как это третий элемент в списке, который был получен в результате преобразования числа12345в строку и разделения этой строки на список.