Я пытаюсь вызвать проверку диапазона в условии if внутри функции, называемой add-check.
Вы можете найти проверку диапазона ниже:
;;; range-check takes 4 arguments: row, numrows, col, numcols It checks if
;;; 0 <= row < numrows and similarly for col and numcols. If both row and col are in
;;; range, range-check returns #t. If either are out of range, rangecheck returns #f
(define (range-check row numrows col numcols)
(not (or (< row 0) (< col 0) (>= row numrows) (>= col numcols))))
Функция - это функция строк и столбцов. Числа и числа - это число. Я пытаюсь вызвать проверку диапазона в соответствии с функцией add-check, приведенной ниже.
- Если проверка диапазона возвращает true, я хочу вернуть два числа func
- Если возвращает false,Я хочу напечатать символ точки
Это проверка добавления:
(define (add-check func numrows numcols)
(if((range-check? (car func) numrows (cdr func) numcols)))
(cons '((car (func)) (cdr (func))))
#\.)
Когда я запускаю это, я получаю ошибку:
if: bad syntax in: (if ((range-check? (car func) numrows (cdr func) numcols)))
, что, как я предполагаю, подразумевает ошибку в условии if.
Я уверен, что у меня глупая синтаксическая проблема или множественные синтаксические проблемы. Я новичок в схеме, и это для школьного проекта. Поэтому, пожалуйста, помогите, насколько это возможно.