Быстрое чтение чисел из потока - Lisp

Узнай цену своей работы

Формулировка задачи:

Помогите написать функцию быстрого чтения целых чисел из потока. Уже есть чтение натуральных.
Листинг программы
  1. (defun get-integer (&optional (stream *standard-input*))
  2. (declare (optimize (speed 3) (safety 0) (space 0) (debug 0)))
  3. (let ((digit (read-char stream nil))
  4. (number 0))
  5. (declare (type fixnum number))
  6. (if digit
  7. (loop
  8. (setf number (the fixnum (+ (the fixnum (* 10 number))
  9. (the fixnum (- (char-code digit) (char-code #\0)))))
  10. digit (read-char stream nil))
  11. (unless (and digit (digit-char-p digit))
  12. (return (values number digit))))
  13. (values nil nil))))
Просто не знаю от чего оттолкнуться

Решение задачи: «Быстрое чтение чисел из потока»

textual
Листинг программы
  1. span class="sy0"> * (Create-fill-matrix 4)
  2. 1 2 3 4
  3. 1 2 3 4
  4. 1 2 3 4
  5.  
  6. #2A((NIL NIL NIL NIL) (1 2 3 4) (1 2 3 4) (1 2 3 4))

Объяснение кода листинга программы

В данном коде создается матрица размером 4x4, заполненная числами 1, 2, 3 и 4.

  1. Сначала вызывается функция Create-fill-matrix с аргументом 4, которая создает матрицу размером 4x4.
  2. Затем в матрицу записываются числа 1, 2, 3 и 4.
  3. Результат сохраняется в переменной с названием NIL (номер 2A).
  4. После этого числа 1, 2, 3 и 4 записываются в каждую строку матрицы.
  5. Результат сохраняется в переменной с названием NIL (номер 2A).
  6. Затем числа 1, 2, 3 и 4 записываются в каждый столбец матрицы.
  7. Результат сохраняется в переменной с названием NIL (номер 2A).
  8. В конце кода выводится содержимое переменной NIL (номер 2A).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы