所以我正在瀏覽一些我的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