如问题所示,我正在尝试获取用户输入以从列表列表中删除元素。该列表的格式是这样的。
'((X X X) (X X X X) (X X))
其中每个子列表包含任意数量的 X。
用户为每个子列表选择 1,2,3,...。因此,如果用户键入 1,则'(X X X)
选择子列表。然后用户选择要删除多少元素。
我为此拥有的当前代码如下。
(define (humanTurn rows player playerNumber)
(drawBoard (with-handlers ([exn:fail?
(lambda (exn)
(display
"ILLEGAL MOVE, PLEASE ENTER A VALID NUMBER\n"))])
(getRowAndSticks rows))
(list (first (rest player)) (first player))
(cond [(equals? playerNumber 1) 2]
[(equals? playerNumber 2) 1]
[else "error"])))
(define (getRowAndSticks rows)
(list-tail (list-ref rows (sub1 (getRow)))
(begin
(display "How many sticks:........ ")
(read))))
(define (getRow)
(display "Which row do you choose: ")
(read))
问题是我不知道如何将列表重新附加在一起。我只设法获得了从中删除元素的列表。我没有看到任何解决方案,因为我不允许使用变量。