Scheme 比较列表中的项目?计划

Scheme 比较列表中的项目?计划,scheme,mit-scheme,Scheme,Mit Scheme,如果您有一个列表((1 4 5)5(6 2 5))和另一个列表(5 1 3 7 5(9 2 4)),我需要编写一个过程来比较第一个列表中的项目,并查看它们是否在第二个列表中。例如,(1 4 5)在(5 1 3 7 5(9 2 3))中出现0次。5在此列表中出现2次,(9 2 4)出现0次。因此列表将返回(0 2 0) 我需要帮助编写一个scheme过程频率,它包含两个列表,第一个是比较每个组件的列表,第二个是统计第一个列表的出现次数的列表。该过程应返回事件列表 到目前为止,我被告知要做两个过程,

如果您有一个列表((1 4 5)5(6 2 5))和另一个列表(5 1 3 7 5(9 2 4)),我需要编写一个过程来比较第一个列表中的项目,并查看它们是否在第二个列表中。例如,(1 4 5)在(5 1 3 7 5(9 2 3))中出现0次。5在此列表中出现2次,(9 2 4)出现0次。因此列表将返回(0 2 0)

我需要帮助编写一个scheme过程频率,它包含两个列表,第一个是比较每个组件的列表,第二个是统计第一个列表的出现次数的列表。该过程应返回事件列表

到目前为止,我被告知要做两个过程,一个是统计每个项目的发生次数(计数器),另一个是在列表中跟踪它(频率)。到目前为止,我已经做到了:

(定义(计数器元件)

(定义(频率els lst)

`(如果(空?els)`
`'()`
`(缺点`
`(频率lst)`
我不知道如何处理频率过程,以及如何从中调用计数器过程


谢谢!

对于类似的内容,您必须使用类似于pair?的东西,因为您使用的是列表列表的树


例如,(列表(列表12)3 4)的汽车将成为列表12。因此,这意味着如果您尝试比较值,您将得到一个错误。您需要隔离树叶(单个数字)从配对中进行比较。

我不敢相信这可能是重复的。上次你发布这个问题时,我给了你解决它所需的所有提示,而你还没有尽一点努力尝试!你只是发布了我自己的答案,希望其他人为你填补空白!你已经或多或少地用英语描述过了你的下一个任务不会因为你的作弊而变得更容易。
 `(cond ((null? lst)  `                          
       '()) 
        `((equal? ele lst)`                
            `(+ 1 (counter ele (cdr lst))))`    
        `(else`
        `(counter ele (cdr lst)))))`          
 `(if (null? els)` 
      `'()`
      `(cons <???>`
      `(frequency <???> lst))))`