Я пытаюсь сделать простую функцию в схеме, которая находит наибольшее число в списке.Передайте список как функцию параметра?
Вот мой код:
(define (maximo lista maximo_actual)
(if (= lista())
maximo_actual
(let* ((primero maximo_actual)
(segundo (car lista)))
(if (> primero segundo)
((maximo (cdr lista) primero))
((maximo (cdr lista) segundo))))))
я вызываю функцию с этим:
(maximo (list 6 3 2 8 9) 5)
И программа возвращения этого:
;ERROR: "programas.scm": =: Wrong type in arg1 (6 3 2 8 9)
; in expression: (#@= #@lista())
; in scope:
; (lista maximo_actual) procedure maximo
; defined by load: "programas.scm"
Я думаю, что есть что-то неправильно с параметрами. Я изучаю схему, и я не знаю, где проблема.
Чрезвычайно много, я ном со схемой: P – kentverger
Почему вы называете это «PLT Scheme», если вы знаете, что веб-сайт предназначен для «Racket» ...? –
Раньше это называлось «PLT Scheme». Я думал, что назвать его «Racket» может немного запутать. Но, по-видимому, это называлось «PLT Scheme», также сбивало с толку, плохо отредактировал мой ответ. –