将表示为系数列表的多项式转换为字符串

Convert a polynomial represented as a list of coefficients to a string

我知道这是一个新问题。我正在尝试创建一个函数 'displayPoly' 来显示方案中的多项式。例如给出的列表为 '(2 0 1 5.1 8) 应该显示 2x^4 + x^2 + 5.1x + 8。

我定义 "degree" 如下:

 (define degree
 (lambda(list)
  (if (null? list) 
      (- 1)
  (+ 1  (degree (cdr list))))))

请注意我严格限制基本方案功能 •define, lambda, if, cond, cons,car, cdr, list, member, list-ref •谓词:空?列表?平等的?细绳?数字?成员? •算术运算符、关系运算符、逻辑运算符 •sort、map、filter、foldr、foldl、length、reverse、append、last、let、let*、letrec、print、begin、newline、display、expt、string-append、reduce、range

你需要写一些辅助函数。

  1. 写一个给定多项式returns度数列表的函数。

    输入:'(2 0 1 5.1 8) 输出:(4 3 2 1 0)

  2. 写一个函数mono,给定一个系数和一个度数,输出一个单项式作为字符串。

    输入:2 4 输出:“2x^4”

  3. 使用 (map mono '(2 0 1 5.1 8) (4 3 2 1 0)) 生成单项式列表。

  4. 使用add-between(或自己写一个)在所有单项式之间添加“+”。

  5. 使用 (apply string-append your-list-of-monomials) 获取最终字符串。

注意:可以生成更漂亮的输出,但这是一个好的开始。