私は構造のリストを受け取る関数に取り組んでおり、その構造のリストを使用して、シンボルのリストを数値に処理する関数を生成します。各構造は、消費される 2 番目のリストに含まれるシンボルと数値で構成されます。生成されたこの関数は、前の構造に基づいて各記号に値を割り当てることにより、記号のリストを数値に変換する必要があります。ところで、抽象リスト関数を使用します。
Example: ((function (list (make-value 'value1 10) (make-value 'value2 20)))
(list 'value1 'value2 'nothing 'value1)) would produced 40.
Heres 私のコードですが、特定のケースでのみ機能します。
(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)))))