Functional programming 将表示为系数列表的多项式转换为字符串
我知道这是个新问题。我正在尝试创建一个函数“displayPoly”,以在scheme中显示多项式。例如,下面给出的列表 '(20 1 5.1 8)应显示2x^4+x^2+5.1x+8 我将“学位”定义如下:Functional programming 将表示为系数列表的多项式转换为字符串,functional-programming,scheme,racket,polynomials,Functional Programming,Scheme,Racket,Polynomials,我知道这是个新问题。我正在尝试创建一个函数“displayPoly”,以在scheme中显示多项式。例如,下面给出的列表 '(20 1 5.1 8)应显示2x^4+x^2+5.1x+8 我将“学位”定义如下: (define degree (lambda(list) (if (null? list) (- 1) (+ 1 (degree (cdr list)))))) 请注意,我严格限于基本方案功能 •定义、lambda、if、cond、cons、car、cdr、l
(define degree
(lambda(list)
(if (null? list)
(- 1)
(+ 1 (degree (cdr list))))))
请注意,我严格限于基本方案功能
•定义、lambda、if、cond、cons、car、cdr、list、member、list ref
•谓词:null?列表平等?一串号码?成员?
•算术运算符、关系运算符、逻辑运算符
•排序、映射、筛选、foldr、foldl、长度、反转、追加、最后、let、let*、let rec、打印、开始、换行、显示、导出、字符串追加、减少、范围您需要编写一些帮助函数
mono
,该函数给定一个系数和一个度,输出一个单项式作为字符串
投入:2 4
输出:“2x^4”(映射mono'(2 0 1 5.1 8)(4 3 2 1 0))
生成单项式列表addbetween
(或自己编写一个)在所有单项式之间添加“+”(应用字符串附加单项式列表)
获取最终字符串注意:可以生成更漂亮的输出,但这是一个良好的开端。您需要编写一些帮助函数
mono
,该函数给定一个系数和一个度,输出一个单项式作为字符串
投入:2 4
输出:“2x^4”(映射mono'(2 0 1 5.1 8)(4 3 2 1 0))
生成单项式列表addbetween
(或自己编写一个)在所有单项式之间添加“+”(应用字符串附加单项式列表)
获取最终字符串注:可以产生更漂亮的输出,但这是一个良好的开端。该建议会对负系数造成问题。例如,
(-12-5)
应该使-x^2+2x-5
或(-1)x^2+2x+(-5)
不是完美的,但至少是正确的。@Skywest底片的显示方式不是问题。只要“+”显示在中间。不管怎样,我使用递归和显示来实现它。我遇到的唯一问题是它会显示0。i、 e(53-21)=5x^4+0x^3+3x^2+-2x+1。我试着映射mono和filter,但没有成功。我想这就够了。如果你的答案有帮助,请考虑通过点击绿色复选标记来接受答案。例如,(-12-5)
应该使-x^2+2x-5
或(-1)x^2+2x+(-5)
不是完美的,但至少是正确的。@Skywest底片的显示方式不是问题。只要“+”显示在中间。不管怎样,我使用递归和显示来实现它。我遇到的唯一问题是它会显示0。i、 e(53-21)=5x^4+0x^3+3x^2+-2x+1。我试着映射mono和filter,但没有成功。我想这就够了。如果你的答案有帮助,请考虑通过点击绿色复选标记来接受答案。