Elisp格式说明符与参数类型错误不匹配

时间:2013-02-11 18:33:37

标签: emacs arguments elisp conditional

我得到一个"格式说明符不匹配参数类型"尝试以交互方式运行主函数时出错。我的代码是:

(defun average(grade)
  (setq divide (/ grade 10))
  (cond ((= divide 10) "A")
        ((= divide 9) "A")
        ((= divide 8) "B")
        ((= divide 7) "C")
        ((= divide 6) "D")
        ("F")))

(defun main(g)
 (interactive "nGrade: ") 
 (message "%d" (average g )))

任何人都可以帮助我输入/输出错误吗? 谢谢

1 个答案:

答案 0 :(得分:4)

错误在格式行

 (format "%d" (average g))

想要格式化整数但是你要返回一个字符串,它应该是:

 (format "%s" (average g))

另外,在测试elisp时,M-x ielm非常有用。