Структура списка схем - PullRequest
0 голосов
/ 01 апреля 2012

Хорошо, я пытаюсь использовать элемент списка функций. Но у меня возникла проблема с использованием его в моем коде.

(func (list sum) (list 1 2 3)) я пытаюсь применить элемент sum в list1 к моему list2. сумма описывается как принятие списка в качестве аргумента. Я просто взял одну функцию в list1 для попытки. Тем не менее

    (display (car list1)) --> sum
    (display list2)--->(1 2 3)
    (display (list (sum list2)))--->(6)
    (display ((car list1) list2))---> ERROR 

ОШИБКА: вызов функции: ожидал функцию после открытых скобок, но получил 'сумму

Я не могу понять, почему это дает эту ошибку. Как видите (car list1) относится к сумме, а list2 относится к (1 2 3) llpist.

Можете ли вы сказать мне, если я что-то не так? Thx.

1 Ответ

0 голосов
/ 01 апреля 2012

Нам нужно увидеть реализацию sum и точный способ создания списков. Я предполагаю, что вы передаете символ 'sum, а не процедура sum.Когда я пытаюсь выполнить следующее, это работает без проблем, о которых вы сообщаете:

; this is guesswork, OP didn't provide enough information
(define sum (lambda (lst) (apply + lst)))
(define list1 (list sum))
(define list2 (list 1 2 3))

(display (car list1))
(display list2)
(display (list (sum list2)))
(display ((car list1) list2)) ; this works for me
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...