Функция схемы, которая суммирует число u и список x u + x1 + x2 - PullRequest
0 голосов
/ 24 сентября 2011

Я новичок в Scheme и пытаюсь создать функцию, которая (в fux), u является целым числом, x является списком и f двоичной функцией.Выражение схемы (в + 3 '(1 2 3)) должно возвращать 3 + 1 + 2 + 3 = 9.

У меня есть это, но если я делаю (в + 3' (1 2)), этовернуть 3 не 6. Что я делаю не так?

(define (in f u x)
  (define (h x u)
    (if (null? x)
        u
        (h (cdr x) (f u (car x)))))
  (h x 0))

1 Ответ

3 голосов
/ 24 сентября 2011

Из того, что я понимаю о том, что должна делать ваша in функция, вы можете определить ее следующим образом:

(define in fold)   ; after loading SRFI 1

: - P

(Более серьезно, вы можетепосмотрите на мою реализацию fold для некоторых идей, но вы должны представить свою собственную версию для домашней работы.)

...