Scheme 频率表2-哈夫曼项目

Scheme 频率表2-哈夫曼项目,scheme,racket,huffman-code,Scheme,Racket,Huffman Code,之前我有一个关于在频率列表中添加一个字符的问题,这个问题已经解决了,但是我在项目的其余部分又遇到了问题。接下来的两个功能正在发挥作用: 编写一个函数,从字符列表中创建频率列表 我的代码: (define statistiques (lambda (l) (if (null? l) l (ajoute1(car l)(statistiques (cdr l)))))) (define tirefreq (lambda (l) (inser

之前我有一个关于在频率列表中添加一个字符的问题,这个问题已经解决了,但是我在项目的其余部分又遇到了问题。接下来的两个功能正在发挥作用:

编写一个函数,从字符列表中创建频率列表

我的代码:

(define statistiques 
  (lambda (l)
    (if (null? l)
        l
        (ajoute1(car l)(statistiques (cdr l))))))
(define tirefreq
  (lambda (l)
    (inserefreq(car l) (tirefreq (cdr l)))))
编写一个函数,在按出现次数排序的成对列表中插入一对字符和一个数字,该数字指示该字符在列表中的出现

我的代码:

(define statistiques 
  (lambda (l)
    (if (null? l)
        l
        (ajoute1(car l)(statistiques (cdr l))))))
(define tirefreq
  (lambda (l)
    (inserefreq(car l) (tirefreq (cdr l)))))

结果/错误:

当l为空时,您只是缺少基本大小写:

(define triefreq
  (lambda (l)
    (if (null? l)
        '()
        (inserefreq (car l) (triefreq (cdr l))))))

哦,谢谢你,我不知道我怎么会没有注意到这一点。我觉得自己太傻了:$也许是时候休息一下了-在你之前的问题中,有人想知道你使用的是什么语言,你说的是我理解的Scheme!r6rs,但在您发布的图片上,您并没有使用Scheme,而是以列表缩写开始。你的语言是有限制的,所以在你的问题中提到这一点很重要,否则你要么会被拒绝!拍还是拍!r6rs回答。哦,我不知道。。在课堂上我们有练习说写在方案中,但我们实际上总是使用这个选项或相当大的,所以我认为这些毕竟是语言方案,但只是略有不同的版本。可能我误解了课堂上说的一些事情,因为它是用法语说的哈哈
(define triefreq
  (lambda (l)
    (if (null? l)
        '()
        (inserefreq (car l) (triefreq (cdr l))))))