我知道这是一个新的问题。我正在尝试创建一个函数'displayPoly'来显示方案中的多项式。例如,给出的列表为 '(2 0 1 5.1 8)应显示2x ^ 4 + x ^ 2 + 5.1x + 8。
我已将“学位”定义如下:
(define degree
(lambda(list)
(if (null? list)
(- 1)
(+ 1 (degree (cdr list))))))
请注意我严格限于基本方案功能 •define,lambda,if,cond,cons,car,cdr,list,member,list-ref •谓词:null?清单?等于?串?数?会员? •算术运算符,关系运算符,逻辑运算符 •sort,map,filter,foldr,foldl,length,reverse,append,last,let,let *,letrec,print,begin,newline,display,expt,string-append,reduce,range
答案 0 :(得分:0)
您需要编写一些辅助函数。
编写一个给定多项式的函数,返回一个度数列表。
输入:'(2 0 1 5.1 8) 输出:(4 3 2 1 0)
写一个给定系数和度数的函数mono
输出一个单项式作为字符串。
输入:2 4 输出:“2x ^ 4”
使用(map mono '(2 0 1 5.1 8) (4 3 2 1 0))
生成单项式列表。
使用add-between
(或自己写一个)在所有单项式之间添加“+”。
使用(apply string-append your-list-of-monomials)
获取最终字符串。
注意:可以产生更漂亮的输出,但这是一个良好的开端。