我正在研究一个接收结构列表的函数,然后使用该结构列表生成一个将符号列表处理为数字的函数。每个结构都由一个符号和一个数字组成,该符号将在第二个使用的列表中。产生的这个函数必须通过根据先前的结构为每个符号分配一个值来将符号列表转换为一个数字。顺便说一句,使用抽象列表函数。
Example: ((function (list (make-value 'value1 10) (make-value 'value2 20)))
(list 'value1 'value2 'nothing 'value1)) would produced 40.
这是我的代码,但它仅适用于特定情况。
(define (function lst)
(lambda (x) (foldr + 0 (map (lambda (x)
(cond
[(equal? x (value-name(first lst)))(value-value (first lst))]
[else (value-value (second lst))]))
(filter (lambda (x) (member? x (map value-name lst)))x)))))