所以我正在浏览一些我的Programming Languages模块的文章,我遇到了这个问题,我不知道该怎么去做。College Work - Scheme
问:“定义方案函数反向与计数它有两个 列表,其中第二个是一个非负整数的 长度相同第一列表的列表,并返回元件的列表从 第一个列表按相反顺序,每个列表重复 ,由第二个列表的相应元素指定。
例子:
(reverse-with-count '(a b c) '(1 2 3)) => (c c c b b a)
(reverse-with-count '(d c b a) '(3 0 0 1)) => (a d d d)
谢谢:)
编辑:
(define (repeat n s)
(if (= n 0)
'()
(append s
(repeat (- n 1) s))))
使用:
(repeat 10 '(test)) => '(test test test test test test test test test test)
你可以写一个函数,它接受一个符号S,N个一产生与N倍的S元素的列表?请至少提供一次尝试。 – coredump
@coredump见上面.. –
用'cons'而不是'append',你可以用'(repeat 10'test)'调用函数'。另外,要注意输入中可能的否定'n',你应该使用'<='而不是'='。但这很好。现在,如果你叫'(地图重复数字符号)',那么'数字'和'符号'是你的数字和符号列表呢?你会得到一个列表清单。接下来,反转该列表,并将其所有元素与'(foldr append()...)'连接起来。 – coredump