Я хочу получить две строки в качестве аргументов и проверить, является ли первая строка началом второй строки. Я не могу получить это, так как не знаю, как получить строки в качестве аргументов для моей функции.Строки как аргумент функции Scheme Racket
(define starts-with(lambda (prefix str)
(define str2 (string->list (str)))
(define prefix2 (string->list (prefix)))
(cond ((= (string-length(prefix2) 0) display "#t")
((= car(prefix2) car(str2)) (starts-with (cdr(prefix2)cdr(str2))))
(display "#f")))))
Error: application: not a procedure; expected a procedure that can be
applied to arguments
Дано: «аб» аргументы ...: [никто]
Может кто-нибудь объяснить мне, что это моя ошибка, и в целом, как схема работает со списками или строк ..? Я хочу иметь:
(starts-with "baz" "bazinga!") ;; "#t"
Lopez первое спасибо, второй - «список prefix2 (string-> prefix) '- эта строка будет выполняться только один раз или каждый шаг рекурсии? – mooly
@mooly В моем коде он будет выполнен только один раз; в вашем коде он выполнялся каждый раз - и он вызывает ошибку, потому что второй раз параметр уже является списком символов, а не строкой. –