将表示为系数列表的多项式转换为字符串
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
你需要写一些辅助函数。
写一个给定多项式returns度数列表的函数。
输入:'(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)
获取最终字符串。
注意:可以生成更漂亮的输出,但这是一个好的开始。
我知道这是一个新问题。我正在尝试创建一个函数 '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
你需要写一些辅助函数。
写一个给定多项式returns度数列表的函数。
输入:'(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)
获取最终字符串。
注意:可以生成更漂亮的输出,但这是一个好的开始。