DrScheme. Количество нулей в четных строках таблицы - Lisp

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

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

Таблица задана списком, каждый элемент которой представляет собой список. Определить, количество нулей в четных строках таблицы. Элементами таблицы являются только числа.

Решение задачи: «DrScheme. Количество нулей в четных строках таблицы»

textual
Листинг программы
#lang scheme
 
 
(define (even-closure)
  (let ((even-val #t))
    (lambda ()
      (set! even-val (not even-val))
      even-val)))
 
 
(let ((table '((0 0 0 1)
               (0 0 1 0)
               (0 1 0 0)
               (1 0 0 0)))
      (f (even-closure)))
  (map (lambda (row) (if (f) (count zero? row) 0)) table))
;'(0 3 0 3)

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

В данном коде на языке Lisp с помощью функции even-closure создается анонимная функция, которая меняет значение переменной even-val на противоположное при каждом вызове. Далее, с помощью функции let создается область видимости для переменных table и f. В table содержится таблица, представленная в виде списка списков, в которой каждое внутреннее представление состоит из четырех элементов. Внутри области видимости этих переменных, вызывается функция even-closure с целью получения анонимной функции, которая будет использоваться для определения четности каждой строки в таблице. Затем, с помощью функции map и лямбда-выражения, происходит обход каждой строки таблицы и подсчет количества нулей в четной строке. Результат вычислений сохраняется в новом списке, который выводится на экран. Код выводит на экран следующий результат: (0 3 0 3). Это означает, что в таблице есть три строки с четным значением, и в каждой из этих строк есть три нуля.

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


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

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

9   голосов , оценка 4.111 из 5
Похожие ответы