繁体   English   中英

根据用户在Racket中的选择从列表列表中删除元素

[英]Removing elements from list of lists based on user choice in Racket

如问题所示,我正在尝试接受用户输入以从列表列表中删除元素。 该列表的格式如下。 '((XXX) (XXXX) (XX)) ,其中每个子列表包含任意数量的X。

用户为每个子列表选择1,2,3,...。 因此,如果用户键入1,则选择子列表'(XXX) 然后,用户选择要删除的元素数量。

我为此的当前代码如下。

(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))

问题是我不知道如何将列表重新附加在一起。 我只设法获得了从中删除元素的列表。 我看不到任何解决方案,因为不允许使用变量。

我很难遵循您的代码,但是要使列表重新结合在一起,请使用list函数或list* 两者之间的区别在于,后者列出了所有自变量的列表,但最后一个被附加了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM