DrScheme. Количество нулей в четных строках таблицы - Lisp
Формулировка задачи:
Решение задачи: «DrScheme. Количество нулей в четных строках таблицы»
#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)
. Это означает, что в таблице есть три строки с четным значением, и в каждой из этих строк есть три нуля.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д