鉴于以下功能,我无法理解作为第二个参数接收的地图功能。
(def tails
(fn [seq]
(map drop
(range (inc (count seq)))
(repeat (inc (count seq)) seq))))
鉴于seq是(list 1 2 3)
该行:
(range (inc (count seq)))
将产生((1 2 3)(1 2 3)(1 2 3))
这一行:
(range (inc (count seq)))
将产生(0 1 2 3)
那么,接收map函数作为第二个参数是什么?
答案 0 :(得分:1)
第二个参数seq
重复次数为长度+ 1,因此您可以从中删除0到长度的元素。
对于'(1 2 3)
,你得到
(map drop '(0 1 2 3) (repeat 4 '( 1 2 3)))
(实现时)将等同于
(list (drop 0 '(1 2 3)) (drop 1 '(1 2 3)) (drop 2 '(1 2 3)) (drop 3 '(1 2 3)))
评估为
((1 2 3) (2 3) (3) ())