簡體   English   中英

方案中的遞歸

[英]Recursion in scheme

我的目標是從這個列表中找到

(ABCDEG)

新名單

(BDG)

但是我的代碼不起作用。

(define  (fun lst)
    (cond
     ((null? lst) '())
      ((null? (cdr lst) '())
       (else  (cons ( cadr lst) ( fun lst))))

我得到(BCDEG) 我哪里錯了?

您的函數沒有做任何事情,您實際上還沒有指定要測試的內容。 如果您真的只想從該特定列表中獲取 BDG,那么您需要做的就是對每個字符進行這些測試,(equal? (car lst) 'B) 等等。

相反,如果該函數假設只是打印列表中的所有其他字符,那么您需要構建一種方法來做到這一點。 例如,您現在擁有的遞歸基本情況是正確的,空列表應該返回一個空列表。 否則,如果它不為空,則返回列表的 cdr,然后使用它。

如果你仍然想不出答案,就開始把它寫在紙上,看看不同的測試會做什么。 您需要想出一種方法來找到所有其他角色。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM