リスト((1 4 5)5(6 2 5))と別のリスト(5 1 3 7 5(9 2 4))がある場合、最初のリストの項目を比較して表示するプロシージャを作成する必要があります。彼らが2番目にいる場合。たとえば、(1 4 5)は(5 1 3 7 5(9 2 3))に0回出現します。5はこのリストに2回表示され、(9 2 4)は0回表示されます。したがって、リストは(0 2 0)を返します
2つのリストを取得するスキームプロシージャの頻度を作成するのに助けが必要です。1つ目は各コンポーネントを比較するもので、2つ目は最初のリストの出現回数をカウントするものです。プロシージャは、発生のリストを返す必要があります。
これまでのところ、2つの手順を実行するように言われています。1つは各アイテムの発生をカウントし(カウンター)、もう1つはリストでそれを追跡します(頻度)。私はこれまでにこれを行いました:
(define (counter ele lst)
`(cond ((null? lst) `
'())
`((equal? ele lst)`
`(+ 1 (counter ele (cdr lst))))`
`(else`
`(counter ele (cdr lst)))))`
(define (frequency els lst)
`(if (null? els)`
`'()`
`(cons <???>`
`(frequency <???> lst))))`
頻度プロシージャをどうするか、そしてそれからカウンタプロシージャを呼び出す方法がわかりません
ありがとう!