スキーム内のスキームのエバリュエーターを作成していますが、必要な機能の 1 つはマップです。ただし、私が見つけたマップの定義はすべて、複数のリストを許可していません。例えば:
(define (my-map proc lis)
(cond ((null? lis)
'())
((pair? lis)
(cons (proc (car lis))
(my-map proc (cdr lis))))))
このマップの定義は「不完全」です。たとえば、次のように 2 つの数値リストを追加することはできません (引数として 1 つのリストしか許可されません)。
(my-map + '(1 2 3) '(4 5 6))
上記のマップ定義を変更して、任意の数のリストを許可するにはどうすればよいですか?