X10*_*10D 1 scheme functional-programming racket
如何获得每个子列表的产品?尝试:
(apply map * '((1 2) (3 4)))
Run Code Online (Sandbox Code Playgroud)
但它返回:'(3 8),而它应该返回'(2 12)
您可以使用模式匹配
(map (? (xs) (match xs [(list a b) (* a b)]))
'((1 2) (3 4)))
Run Code Online (Sandbox Code Playgroud)
...或者您可以使用map
适用*
于子列表的lambda
(map (? (xs) (apply * xs))
'((1 2) (3 4)))
Run Code Online (Sandbox Code Playgroud)
...或者你可以curry
用来取代lambda
(map (curry apply *) '((1 2) (3 4)))
Run Code Online (Sandbox Code Playgroud)