問題如下: 定義一個函數addOne,該函數接受一個數字列表並返回一個列表,其中輸入列表中的每個數字都增加1。例如,(addOne'(1 2 3 4))應該返回(2 3 4 5),並且(addOne'(2 4 6 8))應該返回(3 5 7 9)。計劃語言向每個列表元素添加一個
我是新的計劃語言,需要幫助。謝謝!
問題如下: 定義一個函數addOne,該函數接受一個數字列表並返回一個列表,其中輸入列表中的每個數字都增加1。例如,(addOne'(1 2 3 4))應該返回(2 3 4 5),並且(addOne'(2 4 6 8))應該返回(3 5 7 9)。計劃語言向每個列表元素添加一個
我是新的計劃語言,需要幫助。謝謝!
使用地圖:
(define (add-one nums)
(map (lambda (x) (+ x 1)) nums))
我試着想一個簡單的解決這個問題。我創建了一個輔助程序,plus1
,這需要在一個數,並返回該數的總和與1:
(define (plus1 x)
(+ x 1))
然後,我使用map
定義addOne
:
(define (addOne lst)
(map plus1 lst))
基本上,map
取入兩個參數:一個過程和一個列表。它將該過程應用於該列表中的每個項目,然後根據該過程返回修改後的列表。在這種情況下,的map
部分只需要輸入列表的每個項目,向其中添加1,然後返回新列表。
請回答問題或反饋!