Multiply Two Integer Polynomials The 2019 Stack Overflow Developer Survey Results Are InTips for golfing in PythonTips for golfing in <all languages>Discrete Convolution or Polynomial MultiplicationPretty-printing polynomialsPrime polynomialsSymbolic Differentiation of PolynomialsSymbolic Integration of PolynomialsIrreducible polynomials over GF(5)PolynomialceptionSelf Referential PolynomialsAdd up two algebraic numbersМногочлены Чебышёва (Chebyshev Polynomials)Decompose Polynomials

"as much details as you can remember"

How to save as into a customized destination on macOS?

Is an up-to-date browser secure on an out-of-date OS?

Why isn't airport relocation done gradually?

Is "plugging out" electronic devices an American expression?

Did 3000BC Egyptians use meteoric iron weapons?

What does Linus Torvalds mean when he says that Git "never ever" tracks a file?

Did Scotland spend $250,000 for the slogan "Welcome to Scotland"?

Can one be advised by a professor who is very far away?

Geography at the pixel level

How to deal with speedster characters?

Am I thawing this London Broil safely?

Is there any way to tell whether the shot is going to hit you or not?

Identify boardgame from Big movie

Are children permitted to help build the Beis Hamikdash?

Multiply Two Integer Polynomials

What is the meaning of the verb "bear" in this context?

Falsification in Math vs Science

How to support a colleague who finds meetings extremely tiring?

How to notate time signature switching consistently every measure

What could be the right powersource for 15 seconds lifespan disposable giant chainsaw?

Why not us interferometry to take a picture of Pluto?

What do the Banks children have against barley water?

What are the motivations for publishing new editions of an existing textbook, beyond new discoveries in a field?



Multiply Two Integer Polynomials



The 2019 Stack Overflow Developer Survey Results Are InTips for golfing in PythonTips for golfing in <all languages>Discrete Convolution or Polynomial MultiplicationPretty-printing polynomialsPrime polynomialsSymbolic Differentiation of PolynomialsSymbolic Integration of PolynomialsIrreducible polynomials over GF(5)PolynomialceptionSelf Referential PolynomialsAdd up two algebraic numbersМногочлены Чебышёва (Chebyshev Polynomials)Decompose Polynomials










10












$begingroup$


Your task is to take two single-variable integer polynomial expressions and multiply them into their unsimplified first-term-major left-to-right expansion (A.K.A. FOIL in the case of binomials). Do not combine like terms or reorder the result. To be more explicit about the expansion, multiply the first term in the first expression by each term in the second, in order, and continue in the first expression until all terms have been multiplied by all other terms. Expressions will be given in a simplified LaTeX variant.



Each expression will be a sequence of terms separated by + (with exactly one space on each side) Each term will conform to the following regular expression: (PCRE notation)



-?d+x^d+


In plain English, the term is an optional leading - followed by one or more digits followed by x and a nonnegative integer power (with ^)



An example of a full expression:



6x^3 + 1337x^2 + -4x^1 + 2x^0


When plugged into LaTeX, you get $6x^3 + 1337x^2 + -4x^1 + 2x^0$



The output should also conform to this format.



Since brackets do not surround exponents in this format, LaTeX will actually render multi-digit exponents incorrectly. (e.g. 4x^3 + -2x^14 + 54x^28 + -4x^5 renders as $4x^3 + -2x^14 + 54x^28 + -4x^5$) You do not need to account for this and you should not include the brackets in your output.



Example Test Cases



5x^4
3x^23

15x^27



6x^2 + 7x^1 + -2x^0
1x^2 + -2x^3

6x^4 + -12x^5 + 7x^3 + -14x^4 + -2x^2 + 4x^3



3x^1 + 5x^2 + 2x^4 + 3x^0
3x^0

9x^1 + 15x^2 + 6x^4 + 9x^0



4x^3 + -2x^14 + 54x^28 + -4x^5
-0x^7

0x^10 + 0x^21 + 0x^35 + 0x^12



4x^3 + -2x^4 + 0x^255 + -4x^5
-3x^4 + 2x^2

-12x^7 + 8x^5 + 6x^8 + -4x^6 + 0x^259 + 0x^257 + 12x^9 + -8x^7


Rules and Assumptions



  • You may assume that all inputs conform to this exact format. Behavior for any other format is undefined for the purposes of this challenge.

    • It should be noted that any method of taking in the two polynomials is valid, provided that both are read in as strings conforming to the above format.


  • The order of the polynomials matters due to the expected order of the product expansion.

  • You must support input coefficients between $-128$ and $127$ and input exponents up to $255$.

    • Output coefficents between $-16,256$ and $16,384$ and exponents up to $510$ must therefore be supported.


  • You may assume each input polynomial contains no more than 16 terms

    • Therefore you must (at minimum) support up to 256 terms in the output


  • Terms with zero coefficients should be left as is, with exponents being properly combined

  • Negative zero is allowed in the input, but is indistinguishable from positive zero semantically. Always output positive zero. Do not omit zero terms.

Happy Golfing! Good luck!










share|improve this question









$endgroup$











  • $begingroup$
    related
    $endgroup$
    – H.PWiz
    7 hours ago






  • 1




    $begingroup$
    @LuisfelipeDejesusMunoz I imagine not. Parsing is an integral part of the challenge and the OP says -- "It should be noted that any method of taking in the two polynomials is valid, provided that both are read in as strings conforming to the above format." (emphasis added)
    $endgroup$
    – Giuseppe
    6 hours ago










  • $begingroup$
    Your regex is wrong: ^ should be ^.
    $endgroup$
    – Erik the Outgolfer
    6 hours ago















10












$begingroup$


Your task is to take two single-variable integer polynomial expressions and multiply them into their unsimplified first-term-major left-to-right expansion (A.K.A. FOIL in the case of binomials). Do not combine like terms or reorder the result. To be more explicit about the expansion, multiply the first term in the first expression by each term in the second, in order, and continue in the first expression until all terms have been multiplied by all other terms. Expressions will be given in a simplified LaTeX variant.



Each expression will be a sequence of terms separated by + (with exactly one space on each side) Each term will conform to the following regular expression: (PCRE notation)



-?d+x^d+


In plain English, the term is an optional leading - followed by one or more digits followed by x and a nonnegative integer power (with ^)



An example of a full expression:



6x^3 + 1337x^2 + -4x^1 + 2x^0


When plugged into LaTeX, you get $6x^3 + 1337x^2 + -4x^1 + 2x^0$



The output should also conform to this format.



Since brackets do not surround exponents in this format, LaTeX will actually render multi-digit exponents incorrectly. (e.g. 4x^3 + -2x^14 + 54x^28 + -4x^5 renders as $4x^3 + -2x^14 + 54x^28 + -4x^5$) You do not need to account for this and you should not include the brackets in your output.



Example Test Cases



5x^4
3x^23

15x^27



6x^2 + 7x^1 + -2x^0
1x^2 + -2x^3

6x^4 + -12x^5 + 7x^3 + -14x^4 + -2x^2 + 4x^3



3x^1 + 5x^2 + 2x^4 + 3x^0
3x^0

9x^1 + 15x^2 + 6x^4 + 9x^0



4x^3 + -2x^14 + 54x^28 + -4x^5
-0x^7

0x^10 + 0x^21 + 0x^35 + 0x^12



4x^3 + -2x^4 + 0x^255 + -4x^5
-3x^4 + 2x^2

-12x^7 + 8x^5 + 6x^8 + -4x^6 + 0x^259 + 0x^257 + 12x^9 + -8x^7


Rules and Assumptions



  • You may assume that all inputs conform to this exact format. Behavior for any other format is undefined for the purposes of this challenge.

    • It should be noted that any method of taking in the two polynomials is valid, provided that both are read in as strings conforming to the above format.


  • The order of the polynomials matters due to the expected order of the product expansion.

  • You must support input coefficients between $-128$ and $127$ and input exponents up to $255$.

    • Output coefficents between $-16,256$ and $16,384$ and exponents up to $510$ must therefore be supported.


  • You may assume each input polynomial contains no more than 16 terms

    • Therefore you must (at minimum) support up to 256 terms in the output


  • Terms with zero coefficients should be left as is, with exponents being properly combined

  • Negative zero is allowed in the input, but is indistinguishable from positive zero semantically. Always output positive zero. Do not omit zero terms.

Happy Golfing! Good luck!










share|improve this question









$endgroup$











  • $begingroup$
    related
    $endgroup$
    – H.PWiz
    7 hours ago






  • 1




    $begingroup$
    @LuisfelipeDejesusMunoz I imagine not. Parsing is an integral part of the challenge and the OP says -- "It should be noted that any method of taking in the two polynomials is valid, provided that both are read in as strings conforming to the above format." (emphasis added)
    $endgroup$
    – Giuseppe
    6 hours ago










  • $begingroup$
    Your regex is wrong: ^ should be ^.
    $endgroup$
    – Erik the Outgolfer
    6 hours ago













10












10








10





$begingroup$


Your task is to take two single-variable integer polynomial expressions and multiply them into their unsimplified first-term-major left-to-right expansion (A.K.A. FOIL in the case of binomials). Do not combine like terms or reorder the result. To be more explicit about the expansion, multiply the first term in the first expression by each term in the second, in order, and continue in the first expression until all terms have been multiplied by all other terms. Expressions will be given in a simplified LaTeX variant.



Each expression will be a sequence of terms separated by + (with exactly one space on each side) Each term will conform to the following regular expression: (PCRE notation)



-?d+x^d+


In plain English, the term is an optional leading - followed by one or more digits followed by x and a nonnegative integer power (with ^)



An example of a full expression:



6x^3 + 1337x^2 + -4x^1 + 2x^0


When plugged into LaTeX, you get $6x^3 + 1337x^2 + -4x^1 + 2x^0$



The output should also conform to this format.



Since brackets do not surround exponents in this format, LaTeX will actually render multi-digit exponents incorrectly. (e.g. 4x^3 + -2x^14 + 54x^28 + -4x^5 renders as $4x^3 + -2x^14 + 54x^28 + -4x^5$) You do not need to account for this and you should not include the brackets in your output.



Example Test Cases



5x^4
3x^23

15x^27



6x^2 + 7x^1 + -2x^0
1x^2 + -2x^3

6x^4 + -12x^5 + 7x^3 + -14x^4 + -2x^2 + 4x^3



3x^1 + 5x^2 + 2x^4 + 3x^0
3x^0

9x^1 + 15x^2 + 6x^4 + 9x^0



4x^3 + -2x^14 + 54x^28 + -4x^5
-0x^7

0x^10 + 0x^21 + 0x^35 + 0x^12



4x^3 + -2x^4 + 0x^255 + -4x^5
-3x^4 + 2x^2

-12x^7 + 8x^5 + 6x^8 + -4x^6 + 0x^259 + 0x^257 + 12x^9 + -8x^7


Rules and Assumptions



  • You may assume that all inputs conform to this exact format. Behavior for any other format is undefined for the purposes of this challenge.

    • It should be noted that any method of taking in the two polynomials is valid, provided that both are read in as strings conforming to the above format.


  • The order of the polynomials matters due to the expected order of the product expansion.

  • You must support input coefficients between $-128$ and $127$ and input exponents up to $255$.

    • Output coefficents between $-16,256$ and $16,384$ and exponents up to $510$ must therefore be supported.


  • You may assume each input polynomial contains no more than 16 terms

    • Therefore you must (at minimum) support up to 256 terms in the output


  • Terms with zero coefficients should be left as is, with exponents being properly combined

  • Negative zero is allowed in the input, but is indistinguishable from positive zero semantically. Always output positive zero. Do not omit zero terms.

Happy Golfing! Good luck!










share|improve this question









$endgroup$




Your task is to take two single-variable integer polynomial expressions and multiply them into their unsimplified first-term-major left-to-right expansion (A.K.A. FOIL in the case of binomials). Do not combine like terms or reorder the result. To be more explicit about the expansion, multiply the first term in the first expression by each term in the second, in order, and continue in the first expression until all terms have been multiplied by all other terms. Expressions will be given in a simplified LaTeX variant.



Each expression will be a sequence of terms separated by + (with exactly one space on each side) Each term will conform to the following regular expression: (PCRE notation)



-?d+x^d+


In plain English, the term is an optional leading - followed by one or more digits followed by x and a nonnegative integer power (with ^)



An example of a full expression:



6x^3 + 1337x^2 + -4x^1 + 2x^0


When plugged into LaTeX, you get $6x^3 + 1337x^2 + -4x^1 + 2x^0$



The output should also conform to this format.



Since brackets do not surround exponents in this format, LaTeX will actually render multi-digit exponents incorrectly. (e.g. 4x^3 + -2x^14 + 54x^28 + -4x^5 renders as $4x^3 + -2x^14 + 54x^28 + -4x^5$) You do not need to account for this and you should not include the brackets in your output.



Example Test Cases



5x^4
3x^23

15x^27



6x^2 + 7x^1 + -2x^0
1x^2 + -2x^3

6x^4 + -12x^5 + 7x^3 + -14x^4 + -2x^2 + 4x^3



3x^1 + 5x^2 + 2x^4 + 3x^0
3x^0

9x^1 + 15x^2 + 6x^4 + 9x^0



4x^3 + -2x^14 + 54x^28 + -4x^5
-0x^7

0x^10 + 0x^21 + 0x^35 + 0x^12



4x^3 + -2x^4 + 0x^255 + -4x^5
-3x^4 + 2x^2

-12x^7 + 8x^5 + 6x^8 + -4x^6 + 0x^259 + 0x^257 + 12x^9 + -8x^7


Rules and Assumptions



  • You may assume that all inputs conform to this exact format. Behavior for any other format is undefined for the purposes of this challenge.

    • It should be noted that any method of taking in the two polynomials is valid, provided that both are read in as strings conforming to the above format.


  • The order of the polynomials matters due to the expected order of the product expansion.

  • You must support input coefficients between $-128$ and $127$ and input exponents up to $255$.

    • Output coefficents between $-16,256$ and $16,384$ and exponents up to $510$ must therefore be supported.


  • You may assume each input polynomial contains no more than 16 terms

    • Therefore you must (at minimum) support up to 256 terms in the output


  • Terms with zero coefficients should be left as is, with exponents being properly combined

  • Negative zero is allowed in the input, but is indistinguishable from positive zero semantically. Always output positive zero. Do not omit zero terms.

Happy Golfing! Good luck!







code-golf math parsing






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked 7 hours ago









BeefsterBeefster

2,6271244




2,6271244











  • $begingroup$
    related
    $endgroup$
    – H.PWiz
    7 hours ago






  • 1




    $begingroup$
    @LuisfelipeDejesusMunoz I imagine not. Parsing is an integral part of the challenge and the OP says -- "It should be noted that any method of taking in the two polynomials is valid, provided that both are read in as strings conforming to the above format." (emphasis added)
    $endgroup$
    – Giuseppe
    6 hours ago










  • $begingroup$
    Your regex is wrong: ^ should be ^.
    $endgroup$
    – Erik the Outgolfer
    6 hours ago
















  • $begingroup$
    related
    $endgroup$
    – H.PWiz
    7 hours ago






  • 1




    $begingroup$
    @LuisfelipeDejesusMunoz I imagine not. Parsing is an integral part of the challenge and the OP says -- "It should be noted that any method of taking in the two polynomials is valid, provided that both are read in as strings conforming to the above format." (emphasis added)
    $endgroup$
    – Giuseppe
    6 hours ago










  • $begingroup$
    Your regex is wrong: ^ should be ^.
    $endgroup$
    – Erik the Outgolfer
    6 hours ago















$begingroup$
related
$endgroup$
– H.PWiz
7 hours ago




$begingroup$
related
$endgroup$
– H.PWiz
7 hours ago




1




1




$begingroup$
@LuisfelipeDejesusMunoz I imagine not. Parsing is an integral part of the challenge and the OP says -- "It should be noted that any method of taking in the two polynomials is valid, provided that both are read in as strings conforming to the above format." (emphasis added)
$endgroup$
– Giuseppe
6 hours ago




$begingroup$
@LuisfelipeDejesusMunoz I imagine not. Parsing is an integral part of the challenge and the OP says -- "It should be noted that any method of taking in the two polynomials is valid, provided that both are read in as strings conforming to the above format." (emphasis added)
$endgroup$
– Giuseppe
6 hours ago












$begingroup$
Your regex is wrong: ^ should be ^.
$endgroup$
– Erik the Outgolfer
6 hours ago




$begingroup$
Your regex is wrong: ^ should be ^.
$endgroup$
– Erik the Outgolfer
6 hours ago










12 Answers
12






active

oldest

votes


















3












$begingroup$


R, 159 153 bytes





function(P,Q,a=h(P),b=h(Q))paste0(b[1,]%o%a[1,],"x^",outer(b[2,],a[2,],"+"),collapse=" + ")
h=function(s,`/`=strsplit)sapply(el(s/" \+ ")/"x\^",strtoi)


Try it online!



I really wanted to use outer, so there's almost surely a more efficient approach.






share|improve this answer











$endgroup$




















    1












    $begingroup$

    Pyth - 39 bytes



    LmsMcdK"x^"%2cb)j" + "m++*FhdKsedCM*FyM


    Try it online.






    share|improve this answer









    $endgroup$




















      1












      $begingroup$

      Haskell, 124 bytes



      import Data.Lists
      s=splitOn
      z=map(map read.s"x^").s"+"
      a#b=intercalate" + "[shows(u*p)"x^"++show(v+q)|[u,v]<-z a,[p,q]<-z b]


      Note: TIO lacks Data.Lists, so I import Data.Lists.Split and Data.List: Try it online!






      share|improve this answer









      $endgroup$




















        1












        $begingroup$


        Ruby, 102 bytes





        ->a,ba.scan(w=/(-?d+)x.(d+)/).product(b.scan w).mapx,y*?+


        Try it online!






        share|improve this answer











        $endgroup$




















          1












          $begingroup$

          JavaScript, 112 bytes



          I found three alternatives with the same length. Call with currying syntax.



          A=>B=>(P=x=>x.split` + `.map(x=>x.split`x^`))(A).flatMap(a=>P(B).map(b=>a[0]*b[0]+'x^'+(a[1]- -b[1]))).join` + `





          f=
          A=>B=>(P=x=>x.split` + `.map(x=>x.split`x^`))(A).flatMap(a=>P(B).map(b=>a[0]*b[0]+'x^'+(a[1]- -b[1]))).join` + `

          console.log( f('5x^4')('3x^23') )
          console.log( f('6x^2 + 7x^1 + -2x^0')('1x^2 + -2x^3') )
          console.log( f('3x^1 + 5x^2 + 2x^4 + 3x^0')('3x^0') )
          console.log( f('4x^3 + -2x^14 + 54x^28 + -4x^5')('-0x^7') )
          console.log( f('4x^3 + -2x^4 + 0x^255 + -4x^5')('-3x^4 + 2x^2') )






          A=>B=>(P=x=>x.split` + `.map(x=>x.split`x^`))(A).flatMap(([c,e])=>P(B).map(([C,E])=>c*C+'x^'+(e- -E))).join` + `





          f=
          A=>B=>(P=x=>x.split` + `.map(x=>x.split`x^`))(A).flatMap(([c,e])=>P(B).map(([C,E])=>c*C+'x^'+(e- -E))).join` + `

          console.log( f('5x^4')('3x^23') )
          console.log( f('6x^2 + 7x^1 + -2x^0')('1x^2 + -2x^3') )
          console.log( f('3x^1 + 5x^2 + 2x^4 + 3x^0')('3x^0') )
          console.log( f('4x^3 + -2x^14 + 54x^28 + -4x^5')('-0x^7') )
          console.log( f('4x^3 + -2x^4 + 0x^255 + -4x^5')('-3x^4 + 2x^2') )






          A=>B=>(P=x=>[...x.matchAll(/(S+)x.(S+)/g)])(A).flatMap(a=>P(B).map(b=>a[1]*b[1]+'x^'+(a[2]- -b[2]))).join` + `





          f=
          A=>B=>(P=x=>[...x.matchAll(/(S+)x.(S+)/g)])(A).flatMap(a=>P(B).map(b=>a[1]*b[1]+'x^'+(a[2]- -b[2]))).join` + `

          console.log( f('5x^4')('3x^23') )
          console.log( f('6x^2 + 7x^1 + -2x^0')('1x^2 + -2x^3') )
          console.log( f('3x^1 + 5x^2 + 2x^4 + 3x^0')('3x^0') )
          console.log( f('4x^3 + -2x^14 + 54x^28 + -4x^5')('-0x^7') )
          console.log( f('4x^3 + -2x^4 + 0x^255 + -4x^5')('-3x^4 + 2x^2') )








          share|improve this answer











          $endgroup$












          • $begingroup$
            split' + ' => split'+' to save 2 bytes
            $endgroup$
            – Luis felipe De jesus Munoz
            4 hours ago











          • $begingroup$
            @Arnauld Seems fine without them
            $endgroup$
            – Embodiment of Ignorance
            2 hours ago










          • $begingroup$
            @EmbodimentofIgnorance My bad, I misread Luis' comment. I thought it was about the join.
            $endgroup$
            – Arnauld
            2 hours ago


















          1












          $begingroup$


          SNOBOL4 (CSNOBOL4), 192 176 bytes



          	P =INPUT
          Q =INPUT
          D =SPAN(1234567890)
          P P D . K ARB D . W REM . P :F(O)
          B =Q
          B B D . C ARB D . E REM . B :F(P)
          O =O ' + ' K * C 'x^' W + E :(B)
          O O POS(3) REM . OUTPUT
          END


          Try it online!



          Explanation to come when I'm off my phone.






          share|improve this answer











          $endgroup$




















            0












            $begingroup$


            JavaScript (Babel Node), 118 bytes



            Takes input as (a)(b).





            a=>b=>(g=s=>[...s.matchAll(/(-?d+)x.(d+)/g)])(a).flatMap(([_,x,p])=>g(b).map(([_,X,P])=>x*X+'x^'+-(-p-P))).join` + `


            Try it online!






            share|improve this answer









            $endgroup$




















              0












              $begingroup$


              Haskell, 133 bytes





              f""=[]
              f t|[(a,_:_:u)]<-reads t,[(i,v)]<-reads u=(a,i):f(drop 3v)
              p!q=drop 3$do(a,i)<-f p;(b,j)<-f q;" + "++shows(a*b)"x^"++show(i+j)


              Try it online!



              f parses a polynomial from a string, ! multiplies two of them and formats the result.






              share|improve this answer









              $endgroup$




















                0












                $begingroup$


                Python 2, 193 bytes





                import re
                f=re.finditer
                lambda a,b:' + '.join(' + '.join(`int(m.group(1))*int(n.group(1))`+'x^'+`int(m.group(2))+int(n.group(2))`for n in f('(-?d+)x^(d+)',b))for m in f('(-?d+)x^(d+)',a))


                Try it online!



                Side note: First time doing a code golf challenge, so sorry if the attempt sucks haha






                share|improve this answer








                New contributor




                GotCubes is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.






                $endgroup$








                • 1




                  $begingroup$
                  Welcome to PPCG! I'm not much of a python programmer, but if your submission is longer than a SNOBOL one, there's probably room for improvement, heheh. Perhaps you can find help at Tips for Golfing in Python or Tips for Golfing in <all languages>! Hope you enjoy the time you spend here :-)
                  $endgroup$
                  – Giuseppe
                  4 hours ago



















                0












                $begingroup$


                Retina, 110 bytes



                SS+(?=.*n(.+))
                $1#$&
                |" + "L$v` (-?)(d+)x.(d+).*?#(-?)(d+)x.(d+)
                $1$4$.($2*$5*)x^$.($3*_$6*
                --|-(0)
                $1


                Try it online! Explanation:



                SS+(?=.*n(.+))
                $1#$&


                Prefix each term in the first input with a #, a copy of the second input, and a space. This means that all of the terms in copies of the second input are preceded by a space and none of the terms from the first input are.



                |" + "L$v` (-?)(d+)x.(d+).*?#(-?)(d+)x.(d+)
                $1$4$.($2*$5*)x^$.($3*_$6*


                Match all of the copies of terms in the second input and their corresponding term from the first input. Concatenate any - signs, multiply the coefficients, and add the indices. Finally join all of the resulting substitutions with the string  + .



                --|-(0)
                $1


                Delete any pairs of -s and convert -0 to 0.






                share|improve this answer









                $endgroup$




















                  0












                  $begingroup$


                  Jelly, 28 bytes



                  ṣ”+ṣ”xV$€)p/ZPSƭ€j⁾x^Ʋ€j“ + 


                  Try it online!



                  Full program. Takes the two polynomials as a list of two strings.






                  share|improve this answer









                  $endgroup$




















                    0












                    $begingroup$


                    C# (Visual C# Interactive Compiler), 192 190 188 bytes





                    n=>m=>string.Join(g="+",from a in n.Split(g)from b in m.Split(g)select f(a.Split(p="x^")[0])*f(b.Split(p)[0])+p+(f(a.Split(p)[1])+f(b.Split(p)[1])));Func<string,int>f=int.Parse;string p,g;


                    Query syntax seems to be a byte shorter than method syntax.



                    At least I beat SNOBOL.



                    Try it online!






                    share|improve this answer











                    $endgroup$












                    • $begingroup$
                      Sorry, not beating SNOBOL any more!
                      $endgroup$
                      – Giuseppe
                      1 hour ago












                    Your Answer





                    StackExchange.ifUsing("editor", function ()
                    return StackExchange.using("mathjaxEditing", function ()
                    StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
                    StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
                    );
                    );
                    , "mathjax-editing");

                    StackExchange.ifUsing("editor", function ()
                    StackExchange.using("externalEditor", function ()
                    StackExchange.using("snippets", function ()
                    StackExchange.snippets.init();
                    );
                    );
                    , "code-snippets");

                    StackExchange.ready(function()
                    var channelOptions =
                    tags: "".split(" "),
                    id: "200"
                    ;
                    initTagRenderer("".split(" "), "".split(" "), channelOptions);

                    StackExchange.using("externalEditor", function()
                    // Have to fire editor after snippets, if snippets enabled
                    if (StackExchange.settings.snippets.snippetsEnabled)
                    StackExchange.using("snippets", function()
                    createEditor();
                    );

                    else
                    createEditor();

                    );

                    function createEditor()
                    StackExchange.prepareEditor(
                    heartbeatType: 'answer',
                    autoActivateHeartbeat: false,
                    convertImagesToLinks: false,
                    noModals: true,
                    showLowRepImageUploadWarning: true,
                    reputationToPostImages: null,
                    bindNavPrevention: true,
                    postfix: "",
                    imageUploader:
                    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
                    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
                    allowUrls: true
                    ,
                    onDemand: true,
                    discardSelector: ".discard-answer"
                    ,immediatelyShowMarkdownHelp:true
                    );



                    );













                    draft saved

                    draft discarded


















                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f182972%2fmultiply-two-integer-polynomials%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown

























                    12 Answers
                    12






                    active

                    oldest

                    votes








                    12 Answers
                    12






                    active

                    oldest

                    votes









                    active

                    oldest

                    votes






                    active

                    oldest

                    votes









                    3












                    $begingroup$


                    R, 159 153 bytes





                    function(P,Q,a=h(P),b=h(Q))paste0(b[1,]%o%a[1,],"x^",outer(b[2,],a[2,],"+"),collapse=" + ")
                    h=function(s,`/`=strsplit)sapply(el(s/" \+ ")/"x\^",strtoi)


                    Try it online!



                    I really wanted to use outer, so there's almost surely a more efficient approach.






                    share|improve this answer











                    $endgroup$

















                      3












                      $begingroup$


                      R, 159 153 bytes





                      function(P,Q,a=h(P),b=h(Q))paste0(b[1,]%o%a[1,],"x^",outer(b[2,],a[2,],"+"),collapse=" + ")
                      h=function(s,`/`=strsplit)sapply(el(s/" \+ ")/"x\^",strtoi)


                      Try it online!



                      I really wanted to use outer, so there's almost surely a more efficient approach.






                      share|improve this answer











                      $endgroup$















                        3












                        3








                        3





                        $begingroup$


                        R, 159 153 bytes





                        function(P,Q,a=h(P),b=h(Q))paste0(b[1,]%o%a[1,],"x^",outer(b[2,],a[2,],"+"),collapse=" + ")
                        h=function(s,`/`=strsplit)sapply(el(s/" \+ ")/"x\^",strtoi)


                        Try it online!



                        I really wanted to use outer, so there's almost surely a more efficient approach.






                        share|improve this answer











                        $endgroup$




                        R, 159 153 bytes





                        function(P,Q,a=h(P),b=h(Q))paste0(b[1,]%o%a[1,],"x^",outer(b[2,],a[2,],"+"),collapse=" + ")
                        h=function(s,`/`=strsplit)sapply(el(s/" \+ ")/"x\^",strtoi)


                        Try it online!



                        I really wanted to use outer, so there's almost surely a more efficient approach.







                        share|improve this answer














                        share|improve this answer



                        share|improve this answer








                        edited 6 hours ago

























                        answered 7 hours ago









                        GiuseppeGiuseppe

                        17.7k31153




                        17.7k31153





















                            1












                            $begingroup$

                            Pyth - 39 bytes



                            LmsMcdK"x^"%2cb)j" + "m++*FhdKsedCM*FyM


                            Try it online.






                            share|improve this answer









                            $endgroup$

















                              1












                              $begingroup$

                              Pyth - 39 bytes



                              LmsMcdK"x^"%2cb)j" + "m++*FhdKsedCM*FyM


                              Try it online.






                              share|improve this answer









                              $endgroup$















                                1












                                1








                                1





                                $begingroup$

                                Pyth - 39 bytes



                                LmsMcdK"x^"%2cb)j" + "m++*FhdKsedCM*FyM


                                Try it online.






                                share|improve this answer









                                $endgroup$



                                Pyth - 39 bytes



                                LmsMcdK"x^"%2cb)j" + "m++*FhdKsedCM*FyM


                                Try it online.







                                share|improve this answer












                                share|improve this answer



                                share|improve this answer










                                answered 7 hours ago









                                MaltysenMaltysen

                                21.3k445116




                                21.3k445116





















                                    1












                                    $begingroup$

                                    Haskell, 124 bytes



                                    import Data.Lists
                                    s=splitOn
                                    z=map(map read.s"x^").s"+"
                                    a#b=intercalate" + "[shows(u*p)"x^"++show(v+q)|[u,v]<-z a,[p,q]<-z b]


                                    Note: TIO lacks Data.Lists, so I import Data.Lists.Split and Data.List: Try it online!






                                    share|improve this answer









                                    $endgroup$

















                                      1












                                      $begingroup$

                                      Haskell, 124 bytes



                                      import Data.Lists
                                      s=splitOn
                                      z=map(map read.s"x^").s"+"
                                      a#b=intercalate" + "[shows(u*p)"x^"++show(v+q)|[u,v]<-z a,[p,q]<-z b]


                                      Note: TIO lacks Data.Lists, so I import Data.Lists.Split and Data.List: Try it online!






                                      share|improve this answer









                                      $endgroup$















                                        1












                                        1








                                        1





                                        $begingroup$

                                        Haskell, 124 bytes



                                        import Data.Lists
                                        s=splitOn
                                        z=map(map read.s"x^").s"+"
                                        a#b=intercalate" + "[shows(u*p)"x^"++show(v+q)|[u,v]<-z a,[p,q]<-z b]


                                        Note: TIO lacks Data.Lists, so I import Data.Lists.Split and Data.List: Try it online!






                                        share|improve this answer









                                        $endgroup$



                                        Haskell, 124 bytes



                                        import Data.Lists
                                        s=splitOn
                                        z=map(map read.s"x^").s"+"
                                        a#b=intercalate" + "[shows(u*p)"x^"++show(v+q)|[u,v]<-z a,[p,q]<-z b]


                                        Note: TIO lacks Data.Lists, so I import Data.Lists.Split and Data.List: Try it online!







                                        share|improve this answer












                                        share|improve this answer



                                        share|improve this answer










                                        answered 7 hours ago









                                        niminimi

                                        32.7k32489




                                        32.7k32489





















                                            1












                                            $begingroup$


                                            Ruby, 102 bytes





                                            ->a,ba.scan(w=/(-?d+)x.(d+)/).product(b.scan w).mapx,y*?+


                                            Try it online!






                                            share|improve this answer











                                            $endgroup$

















                                              1












                                              $begingroup$


                                              Ruby, 102 bytes





                                              ->a,ba.scan(w=/(-?d+)x.(d+)/).product(b.scan w).mapx,y*?+


                                              Try it online!






                                              share|improve this answer











                                              $endgroup$















                                                1












                                                1








                                                1





                                                $begingroup$


                                                Ruby, 102 bytes





                                                ->a,ba.scan(w=/(-?d+)x.(d+)/).product(b.scan w).mapx,y*?+


                                                Try it online!






                                                share|improve this answer











                                                $endgroup$




                                                Ruby, 102 bytes





                                                ->a,ba.scan(w=/(-?d+)x.(d+)/).product(b.scan w).mapx,y*?+


                                                Try it online!







                                                share|improve this answer














                                                share|improve this answer



                                                share|improve this answer








                                                edited 6 hours ago

























                                                answered 7 hours ago









                                                G BG B

                                                8,2661429




                                                8,2661429





















                                                    1












                                                    $begingroup$

                                                    JavaScript, 112 bytes



                                                    I found three alternatives with the same length. Call with currying syntax.



                                                    A=>B=>(P=x=>x.split` + `.map(x=>x.split`x^`))(A).flatMap(a=>P(B).map(b=>a[0]*b[0]+'x^'+(a[1]- -b[1]))).join` + `





                                                    f=
                                                    A=>B=>(P=x=>x.split` + `.map(x=>x.split`x^`))(A).flatMap(a=>P(B).map(b=>a[0]*b[0]+'x^'+(a[1]- -b[1]))).join` + `

                                                    console.log( f('5x^4')('3x^23') )
                                                    console.log( f('6x^2 + 7x^1 + -2x^0')('1x^2 + -2x^3') )
                                                    console.log( f('3x^1 + 5x^2 + 2x^4 + 3x^0')('3x^0') )
                                                    console.log( f('4x^3 + -2x^14 + 54x^28 + -4x^5')('-0x^7') )
                                                    console.log( f('4x^3 + -2x^4 + 0x^255 + -4x^5')('-3x^4 + 2x^2') )






                                                    A=>B=>(P=x=>x.split` + `.map(x=>x.split`x^`))(A).flatMap(([c,e])=>P(B).map(([C,E])=>c*C+'x^'+(e- -E))).join` + `





                                                    f=
                                                    A=>B=>(P=x=>x.split` + `.map(x=>x.split`x^`))(A).flatMap(([c,e])=>P(B).map(([C,E])=>c*C+'x^'+(e- -E))).join` + `

                                                    console.log( f('5x^4')('3x^23') )
                                                    console.log( f('6x^2 + 7x^1 + -2x^0')('1x^2 + -2x^3') )
                                                    console.log( f('3x^1 + 5x^2 + 2x^4 + 3x^0')('3x^0') )
                                                    console.log( f('4x^3 + -2x^14 + 54x^28 + -4x^5')('-0x^7') )
                                                    console.log( f('4x^3 + -2x^4 + 0x^255 + -4x^5')('-3x^4 + 2x^2') )






                                                    A=>B=>(P=x=>[...x.matchAll(/(S+)x.(S+)/g)])(A).flatMap(a=>P(B).map(b=>a[1]*b[1]+'x^'+(a[2]- -b[2]))).join` + `





                                                    f=
                                                    A=>B=>(P=x=>[...x.matchAll(/(S+)x.(S+)/g)])(A).flatMap(a=>P(B).map(b=>a[1]*b[1]+'x^'+(a[2]- -b[2]))).join` + `

                                                    console.log( f('5x^4')('3x^23') )
                                                    console.log( f('6x^2 + 7x^1 + -2x^0')('1x^2 + -2x^3') )
                                                    console.log( f('3x^1 + 5x^2 + 2x^4 + 3x^0')('3x^0') )
                                                    console.log( f('4x^3 + -2x^14 + 54x^28 + -4x^5')('-0x^7') )
                                                    console.log( f('4x^3 + -2x^4 + 0x^255 + -4x^5')('-3x^4 + 2x^2') )








                                                    share|improve this answer











                                                    $endgroup$












                                                    • $begingroup$
                                                      split' + ' => split'+' to save 2 bytes
                                                      $endgroup$
                                                      – Luis felipe De jesus Munoz
                                                      4 hours ago











                                                    • $begingroup$
                                                      @Arnauld Seems fine without them
                                                      $endgroup$
                                                      – Embodiment of Ignorance
                                                      2 hours ago










                                                    • $begingroup$
                                                      @EmbodimentofIgnorance My bad, I misread Luis' comment. I thought it was about the join.
                                                      $endgroup$
                                                      – Arnauld
                                                      2 hours ago















                                                    1












                                                    $begingroup$

                                                    JavaScript, 112 bytes



                                                    I found three alternatives with the same length. Call with currying syntax.



                                                    A=>B=>(P=x=>x.split` + `.map(x=>x.split`x^`))(A).flatMap(a=>P(B).map(b=>a[0]*b[0]+'x^'+(a[1]- -b[1]))).join` + `





                                                    f=
                                                    A=>B=>(P=x=>x.split` + `.map(x=>x.split`x^`))(A).flatMap(a=>P(B).map(b=>a[0]*b[0]+'x^'+(a[1]- -b[1]))).join` + `

                                                    console.log( f('5x^4')('3x^23') )
                                                    console.log( f('6x^2 + 7x^1 + -2x^0')('1x^2 + -2x^3') )
                                                    console.log( f('3x^1 + 5x^2 + 2x^4 + 3x^0')('3x^0') )
                                                    console.log( f('4x^3 + -2x^14 + 54x^28 + -4x^5')('-0x^7') )
                                                    console.log( f('4x^3 + -2x^4 + 0x^255 + -4x^5')('-3x^4 + 2x^2') )






                                                    A=>B=>(P=x=>x.split` + `.map(x=>x.split`x^`))(A).flatMap(([c,e])=>P(B).map(([C,E])=>c*C+'x^'+(e- -E))).join` + `





                                                    f=
                                                    A=>B=>(P=x=>x.split` + `.map(x=>x.split`x^`))(A).flatMap(([c,e])=>P(B).map(([C,E])=>c*C+'x^'+(e- -E))).join` + `

                                                    console.log( f('5x^4')('3x^23') )
                                                    console.log( f('6x^2 + 7x^1 + -2x^0')('1x^2 + -2x^3') )
                                                    console.log( f('3x^1 + 5x^2 + 2x^4 + 3x^0')('3x^0') )
                                                    console.log( f('4x^3 + -2x^14 + 54x^28 + -4x^5')('-0x^7') )
                                                    console.log( f('4x^3 + -2x^4 + 0x^255 + -4x^5')('-3x^4 + 2x^2') )






                                                    A=>B=>(P=x=>[...x.matchAll(/(S+)x.(S+)/g)])(A).flatMap(a=>P(B).map(b=>a[1]*b[1]+'x^'+(a[2]- -b[2]))).join` + `





                                                    f=
                                                    A=>B=>(P=x=>[...x.matchAll(/(S+)x.(S+)/g)])(A).flatMap(a=>P(B).map(b=>a[1]*b[1]+'x^'+(a[2]- -b[2]))).join` + `

                                                    console.log( f('5x^4')('3x^23') )
                                                    console.log( f('6x^2 + 7x^1 + -2x^0')('1x^2 + -2x^3') )
                                                    console.log( f('3x^1 + 5x^2 + 2x^4 + 3x^0')('3x^0') )
                                                    console.log( f('4x^3 + -2x^14 + 54x^28 + -4x^5')('-0x^7') )
                                                    console.log( f('4x^3 + -2x^4 + 0x^255 + -4x^5')('-3x^4 + 2x^2') )








                                                    share|improve this answer











                                                    $endgroup$












                                                    • $begingroup$
                                                      split' + ' => split'+' to save 2 bytes
                                                      $endgroup$
                                                      – Luis felipe De jesus Munoz
                                                      4 hours ago











                                                    • $begingroup$
                                                      @Arnauld Seems fine without them
                                                      $endgroup$
                                                      – Embodiment of Ignorance
                                                      2 hours ago










                                                    • $begingroup$
                                                      @EmbodimentofIgnorance My bad, I misread Luis' comment. I thought it was about the join.
                                                      $endgroup$
                                                      – Arnauld
                                                      2 hours ago













                                                    1












                                                    1








                                                    1





                                                    $begingroup$

                                                    JavaScript, 112 bytes



                                                    I found three alternatives with the same length. Call with currying syntax.



                                                    A=>B=>(P=x=>x.split` + `.map(x=>x.split`x^`))(A).flatMap(a=>P(B).map(b=>a[0]*b[0]+'x^'+(a[1]- -b[1]))).join` + `





                                                    f=
                                                    A=>B=>(P=x=>x.split` + `.map(x=>x.split`x^`))(A).flatMap(a=>P(B).map(b=>a[0]*b[0]+'x^'+(a[1]- -b[1]))).join` + `

                                                    console.log( f('5x^4')('3x^23') )
                                                    console.log( f('6x^2 + 7x^1 + -2x^0')('1x^2 + -2x^3') )
                                                    console.log( f('3x^1 + 5x^2 + 2x^4 + 3x^0')('3x^0') )
                                                    console.log( f('4x^3 + -2x^14 + 54x^28 + -4x^5')('-0x^7') )
                                                    console.log( f('4x^3 + -2x^4 + 0x^255 + -4x^5')('-3x^4 + 2x^2') )






                                                    A=>B=>(P=x=>x.split` + `.map(x=>x.split`x^`))(A).flatMap(([c,e])=>P(B).map(([C,E])=>c*C+'x^'+(e- -E))).join` + `





                                                    f=
                                                    A=>B=>(P=x=>x.split` + `.map(x=>x.split`x^`))(A).flatMap(([c,e])=>P(B).map(([C,E])=>c*C+'x^'+(e- -E))).join` + `

                                                    console.log( f('5x^4')('3x^23') )
                                                    console.log( f('6x^2 + 7x^1 + -2x^0')('1x^2 + -2x^3') )
                                                    console.log( f('3x^1 + 5x^2 + 2x^4 + 3x^0')('3x^0') )
                                                    console.log( f('4x^3 + -2x^14 + 54x^28 + -4x^5')('-0x^7') )
                                                    console.log( f('4x^3 + -2x^4 + 0x^255 + -4x^5')('-3x^4 + 2x^2') )






                                                    A=>B=>(P=x=>[...x.matchAll(/(S+)x.(S+)/g)])(A).flatMap(a=>P(B).map(b=>a[1]*b[1]+'x^'+(a[2]- -b[2]))).join` + `





                                                    f=
                                                    A=>B=>(P=x=>[...x.matchAll(/(S+)x.(S+)/g)])(A).flatMap(a=>P(B).map(b=>a[1]*b[1]+'x^'+(a[2]- -b[2]))).join` + `

                                                    console.log( f('5x^4')('3x^23') )
                                                    console.log( f('6x^2 + 7x^1 + -2x^0')('1x^2 + -2x^3') )
                                                    console.log( f('3x^1 + 5x^2 + 2x^4 + 3x^0')('3x^0') )
                                                    console.log( f('4x^3 + -2x^14 + 54x^28 + -4x^5')('-0x^7') )
                                                    console.log( f('4x^3 + -2x^4 + 0x^255 + -4x^5')('-3x^4 + 2x^2') )








                                                    share|improve this answer











                                                    $endgroup$



                                                    JavaScript, 112 bytes



                                                    I found three alternatives with the same length. Call with currying syntax.



                                                    A=>B=>(P=x=>x.split` + `.map(x=>x.split`x^`))(A).flatMap(a=>P(B).map(b=>a[0]*b[0]+'x^'+(a[1]- -b[1]))).join` + `





                                                    f=
                                                    A=>B=>(P=x=>x.split` + `.map(x=>x.split`x^`))(A).flatMap(a=>P(B).map(b=>a[0]*b[0]+'x^'+(a[1]- -b[1]))).join` + `

                                                    console.log( f('5x^4')('3x^23') )
                                                    console.log( f('6x^2 + 7x^1 + -2x^0')('1x^2 + -2x^3') )
                                                    console.log( f('3x^1 + 5x^2 + 2x^4 + 3x^0')('3x^0') )
                                                    console.log( f('4x^3 + -2x^14 + 54x^28 + -4x^5')('-0x^7') )
                                                    console.log( f('4x^3 + -2x^4 + 0x^255 + -4x^5')('-3x^4 + 2x^2') )






                                                    A=>B=>(P=x=>x.split` + `.map(x=>x.split`x^`))(A).flatMap(([c,e])=>P(B).map(([C,E])=>c*C+'x^'+(e- -E))).join` + `





                                                    f=
                                                    A=>B=>(P=x=>x.split` + `.map(x=>x.split`x^`))(A).flatMap(([c,e])=>P(B).map(([C,E])=>c*C+'x^'+(e- -E))).join` + `

                                                    console.log( f('5x^4')('3x^23') )
                                                    console.log( f('6x^2 + 7x^1 + -2x^0')('1x^2 + -2x^3') )
                                                    console.log( f('3x^1 + 5x^2 + 2x^4 + 3x^0')('3x^0') )
                                                    console.log( f('4x^3 + -2x^14 + 54x^28 + -4x^5')('-0x^7') )
                                                    console.log( f('4x^3 + -2x^4 + 0x^255 + -4x^5')('-3x^4 + 2x^2') )






                                                    A=>B=>(P=x=>[...x.matchAll(/(S+)x.(S+)/g)])(A).flatMap(a=>P(B).map(b=>a[1]*b[1]+'x^'+(a[2]- -b[2]))).join` + `





                                                    f=
                                                    A=>B=>(P=x=>[...x.matchAll(/(S+)x.(S+)/g)])(A).flatMap(a=>P(B).map(b=>a[1]*b[1]+'x^'+(a[2]- -b[2]))).join` + `

                                                    console.log( f('5x^4')('3x^23') )
                                                    console.log( f('6x^2 + 7x^1 + -2x^0')('1x^2 + -2x^3') )
                                                    console.log( f('3x^1 + 5x^2 + 2x^4 + 3x^0')('3x^0') )
                                                    console.log( f('4x^3 + -2x^14 + 54x^28 + -4x^5')('-0x^7') )
                                                    console.log( f('4x^3 + -2x^4 + 0x^255 + -4x^5')('-3x^4 + 2x^2') )








                                                    f=
                                                    A=>B=>(P=x=>x.split` + `.map(x=>x.split`x^`))(A).flatMap(a=>P(B).map(b=>a[0]*b[0]+'x^'+(a[1]- -b[1]))).join` + `

                                                    console.log( f('5x^4')('3x^23') )
                                                    console.log( f('6x^2 + 7x^1 + -2x^0')('1x^2 + -2x^3') )
                                                    console.log( f('3x^1 + 5x^2 + 2x^4 + 3x^0')('3x^0') )
                                                    console.log( f('4x^3 + -2x^14 + 54x^28 + -4x^5')('-0x^7') )
                                                    console.log( f('4x^3 + -2x^4 + 0x^255 + -4x^5')('-3x^4 + 2x^2') )





                                                    f=
                                                    A=>B=>(P=x=>x.split` + `.map(x=>x.split`x^`))(A).flatMap(a=>P(B).map(b=>a[0]*b[0]+'x^'+(a[1]- -b[1]))).join` + `

                                                    console.log( f('5x^4')('3x^23') )
                                                    console.log( f('6x^2 + 7x^1 + -2x^0')('1x^2 + -2x^3') )
                                                    console.log( f('3x^1 + 5x^2 + 2x^4 + 3x^0')('3x^0') )
                                                    console.log( f('4x^3 + -2x^14 + 54x^28 + -4x^5')('-0x^7') )
                                                    console.log( f('4x^3 + -2x^4 + 0x^255 + -4x^5')('-3x^4 + 2x^2') )





                                                    f=
                                                    A=>B=>(P=x=>x.split` + `.map(x=>x.split`x^`))(A).flatMap(([c,e])=>P(B).map(([C,E])=>c*C+'x^'+(e- -E))).join` + `

                                                    console.log( f('5x^4')('3x^23') )
                                                    console.log( f('6x^2 + 7x^1 + -2x^0')('1x^2 + -2x^3') )
                                                    console.log( f('3x^1 + 5x^2 + 2x^4 + 3x^0')('3x^0') )
                                                    console.log( f('4x^3 + -2x^14 + 54x^28 + -4x^5')('-0x^7') )
                                                    console.log( f('4x^3 + -2x^4 + 0x^255 + -4x^5')('-3x^4 + 2x^2') )





                                                    f=
                                                    A=>B=>(P=x=>x.split` + `.map(x=>x.split`x^`))(A).flatMap(([c,e])=>P(B).map(([C,E])=>c*C+'x^'+(e- -E))).join` + `

                                                    console.log( f('5x^4')('3x^23') )
                                                    console.log( f('6x^2 + 7x^1 + -2x^0')('1x^2 + -2x^3') )
                                                    console.log( f('3x^1 + 5x^2 + 2x^4 + 3x^0')('3x^0') )
                                                    console.log( f('4x^3 + -2x^14 + 54x^28 + -4x^5')('-0x^7') )
                                                    console.log( f('4x^3 + -2x^4 + 0x^255 + -4x^5')('-3x^4 + 2x^2') )





                                                    f=
                                                    A=>B=>(P=x=>[...x.matchAll(/(S+)x.(S+)/g)])(A).flatMap(a=>P(B).map(b=>a[1]*b[1]+'x^'+(a[2]- -b[2]))).join` + `

                                                    console.log( f('5x^4')('3x^23') )
                                                    console.log( f('6x^2 + 7x^1 + -2x^0')('1x^2 + -2x^3') )
                                                    console.log( f('3x^1 + 5x^2 + 2x^4 + 3x^0')('3x^0') )
                                                    console.log( f('4x^3 + -2x^14 + 54x^28 + -4x^5')('-0x^7') )
                                                    console.log( f('4x^3 + -2x^4 + 0x^255 + -4x^5')('-3x^4 + 2x^2') )





                                                    f=
                                                    A=>B=>(P=x=>[...x.matchAll(/(S+)x.(S+)/g)])(A).flatMap(a=>P(B).map(b=>a[1]*b[1]+'x^'+(a[2]- -b[2]))).join` + `

                                                    console.log( f('5x^4')('3x^23') )
                                                    console.log( f('6x^2 + 7x^1 + -2x^0')('1x^2 + -2x^3') )
                                                    console.log( f('3x^1 + 5x^2 + 2x^4 + 3x^0')('3x^0') )
                                                    console.log( f('4x^3 + -2x^14 + 54x^28 + -4x^5')('-0x^7') )
                                                    console.log( f('4x^3 + -2x^4 + 0x^255 + -4x^5')('-3x^4 + 2x^2') )






                                                    share|improve this answer














                                                    share|improve this answer



                                                    share|improve this answer








                                                    edited 5 hours ago

























                                                    answered 5 hours ago









                                                    darrylyeodarrylyeo

                                                    5,2641034




                                                    5,2641034











                                                    • $begingroup$
                                                      split' + ' => split'+' to save 2 bytes
                                                      $endgroup$
                                                      – Luis felipe De jesus Munoz
                                                      4 hours ago











                                                    • $begingroup$
                                                      @Arnauld Seems fine without them
                                                      $endgroup$
                                                      – Embodiment of Ignorance
                                                      2 hours ago










                                                    • $begingroup$
                                                      @EmbodimentofIgnorance My bad, I misread Luis' comment. I thought it was about the join.
                                                      $endgroup$
                                                      – Arnauld
                                                      2 hours ago
















                                                    • $begingroup$
                                                      split' + ' => split'+' to save 2 bytes
                                                      $endgroup$
                                                      – Luis felipe De jesus Munoz
                                                      4 hours ago











                                                    • $begingroup$
                                                      @Arnauld Seems fine without them
                                                      $endgroup$
                                                      – Embodiment of Ignorance
                                                      2 hours ago










                                                    • $begingroup$
                                                      @EmbodimentofIgnorance My bad, I misread Luis' comment. I thought it was about the join.
                                                      $endgroup$
                                                      – Arnauld
                                                      2 hours ago















                                                    $begingroup$
                                                    split' + ' => split'+' to save 2 bytes
                                                    $endgroup$
                                                    – Luis felipe De jesus Munoz
                                                    4 hours ago





                                                    $begingroup$
                                                    split' + ' => split'+' to save 2 bytes
                                                    $endgroup$
                                                    – Luis felipe De jesus Munoz
                                                    4 hours ago













                                                    $begingroup$
                                                    @Arnauld Seems fine without them
                                                    $endgroup$
                                                    – Embodiment of Ignorance
                                                    2 hours ago




                                                    $begingroup$
                                                    @Arnauld Seems fine without them
                                                    $endgroup$
                                                    – Embodiment of Ignorance
                                                    2 hours ago












                                                    $begingroup$
                                                    @EmbodimentofIgnorance My bad, I misread Luis' comment. I thought it was about the join.
                                                    $endgroup$
                                                    – Arnauld
                                                    2 hours ago




                                                    $begingroup$
                                                    @EmbodimentofIgnorance My bad, I misread Luis' comment. I thought it was about the join.
                                                    $endgroup$
                                                    – Arnauld
                                                    2 hours ago











                                                    1












                                                    $begingroup$


                                                    SNOBOL4 (CSNOBOL4), 192 176 bytes



                                                    	P =INPUT
                                                    Q =INPUT
                                                    D =SPAN(1234567890)
                                                    P P D . K ARB D . W REM . P :F(O)
                                                    B =Q
                                                    B B D . C ARB D . E REM . B :F(P)
                                                    O =O ' + ' K * C 'x^' W + E :(B)
                                                    O O POS(3) REM . OUTPUT
                                                    END


                                                    Try it online!



                                                    Explanation to come when I'm off my phone.






                                                    share|improve this answer











                                                    $endgroup$

















                                                      1












                                                      $begingroup$


                                                      SNOBOL4 (CSNOBOL4), 192 176 bytes



                                                      	P =INPUT
                                                      Q =INPUT
                                                      D =SPAN(1234567890)
                                                      P P D . K ARB D . W REM . P :F(O)
                                                      B =Q
                                                      B B D . C ARB D . E REM . B :F(P)
                                                      O =O ' + ' K * C 'x^' W + E :(B)
                                                      O O POS(3) REM . OUTPUT
                                                      END


                                                      Try it online!



                                                      Explanation to come when I'm off my phone.






                                                      share|improve this answer











                                                      $endgroup$















                                                        1












                                                        1








                                                        1





                                                        $begingroup$


                                                        SNOBOL4 (CSNOBOL4), 192 176 bytes



                                                        	P =INPUT
                                                        Q =INPUT
                                                        D =SPAN(1234567890)
                                                        P P D . K ARB D . W REM . P :F(O)
                                                        B =Q
                                                        B B D . C ARB D . E REM . B :F(P)
                                                        O =O ' + ' K * C 'x^' W + E :(B)
                                                        O O POS(3) REM . OUTPUT
                                                        END


                                                        Try it online!



                                                        Explanation to come when I'm off my phone.






                                                        share|improve this answer











                                                        $endgroup$




                                                        SNOBOL4 (CSNOBOL4), 192 176 bytes



                                                        	P =INPUT
                                                        Q =INPUT
                                                        D =SPAN(1234567890)
                                                        P P D . K ARB D . W REM . P :F(O)
                                                        B =Q
                                                        B B D . C ARB D . E REM . B :F(P)
                                                        O =O ' + ' K * C 'x^' W + E :(B)
                                                        O O POS(3) REM . OUTPUT
                                                        END


                                                        Try it online!



                                                        Explanation to come when I'm off my phone.







                                                        share|improve this answer














                                                        share|improve this answer



                                                        share|improve this answer








                                                        edited 1 hour ago

























                                                        answered 6 hours ago









                                                        GiuseppeGiuseppe

                                                        17.7k31153




                                                        17.7k31153





















                                                            0












                                                            $begingroup$


                                                            JavaScript (Babel Node), 118 bytes



                                                            Takes input as (a)(b).





                                                            a=>b=>(g=s=>[...s.matchAll(/(-?d+)x.(d+)/g)])(a).flatMap(([_,x,p])=>g(b).map(([_,X,P])=>x*X+'x^'+-(-p-P))).join` + `


                                                            Try it online!






                                                            share|improve this answer









                                                            $endgroup$

















                                                              0












                                                              $begingroup$


                                                              JavaScript (Babel Node), 118 bytes



                                                              Takes input as (a)(b).





                                                              a=>b=>(g=s=>[...s.matchAll(/(-?d+)x.(d+)/g)])(a).flatMap(([_,x,p])=>g(b).map(([_,X,P])=>x*X+'x^'+-(-p-P))).join` + `


                                                              Try it online!






                                                              share|improve this answer









                                                              $endgroup$















                                                                0












                                                                0








                                                                0





                                                                $begingroup$


                                                                JavaScript (Babel Node), 118 bytes



                                                                Takes input as (a)(b).





                                                                a=>b=>(g=s=>[...s.matchAll(/(-?d+)x.(d+)/g)])(a).flatMap(([_,x,p])=>g(b).map(([_,X,P])=>x*X+'x^'+-(-p-P))).join` + `


                                                                Try it online!






                                                                share|improve this answer









                                                                $endgroup$




                                                                JavaScript (Babel Node), 118 bytes



                                                                Takes input as (a)(b).





                                                                a=>b=>(g=s=>[...s.matchAll(/(-?d+)x.(d+)/g)])(a).flatMap(([_,x,p])=>g(b).map(([_,X,P])=>x*X+'x^'+-(-p-P))).join` + `


                                                                Try it online!







                                                                share|improve this answer












                                                                share|improve this answer



                                                                share|improve this answer










                                                                answered 6 hours ago









                                                                ArnauldArnauld

                                                                80.7k797334




                                                                80.7k797334





















                                                                    0












                                                                    $begingroup$


                                                                    Haskell, 133 bytes





                                                                    f""=[]
                                                                    f t|[(a,_:_:u)]<-reads t,[(i,v)]<-reads u=(a,i):f(drop 3v)
                                                                    p!q=drop 3$do(a,i)<-f p;(b,j)<-f q;" + "++shows(a*b)"x^"++show(i+j)


                                                                    Try it online!



                                                                    f parses a polynomial from a string, ! multiplies two of them and formats the result.






                                                                    share|improve this answer









                                                                    $endgroup$

















                                                                      0












                                                                      $begingroup$


                                                                      Haskell, 133 bytes





                                                                      f""=[]
                                                                      f t|[(a,_:_:u)]<-reads t,[(i,v)]<-reads u=(a,i):f(drop 3v)
                                                                      p!q=drop 3$do(a,i)<-f p;(b,j)<-f q;" + "++shows(a*b)"x^"++show(i+j)


                                                                      Try it online!



                                                                      f parses a polynomial from a string, ! multiplies two of them and formats the result.






                                                                      share|improve this answer









                                                                      $endgroup$















                                                                        0












                                                                        0








                                                                        0





                                                                        $begingroup$


                                                                        Haskell, 133 bytes





                                                                        f""=[]
                                                                        f t|[(a,_:_:u)]<-reads t,[(i,v)]<-reads u=(a,i):f(drop 3v)
                                                                        p!q=drop 3$do(a,i)<-f p;(b,j)<-f q;" + "++shows(a*b)"x^"++show(i+j)


                                                                        Try it online!



                                                                        f parses a polynomial from a string, ! multiplies two of them and formats the result.






                                                                        share|improve this answer









                                                                        $endgroup$




                                                                        Haskell, 133 bytes





                                                                        f""=[]
                                                                        f t|[(a,_:_:u)]<-reads t,[(i,v)]<-reads u=(a,i):f(drop 3v)
                                                                        p!q=drop 3$do(a,i)<-f p;(b,j)<-f q;" + "++shows(a*b)"x^"++show(i+j)


                                                                        Try it online!



                                                                        f parses a polynomial from a string, ! multiplies two of them and formats the result.







                                                                        share|improve this answer












                                                                        share|improve this answer



                                                                        share|improve this answer










                                                                        answered 5 hours ago









                                                                        LynnLynn

                                                                        50.7k898233




                                                                        50.7k898233





















                                                                            0












                                                                            $begingroup$


                                                                            Python 2, 193 bytes





                                                                            import re
                                                                            f=re.finditer
                                                                            lambda a,b:' + '.join(' + '.join(`int(m.group(1))*int(n.group(1))`+'x^'+`int(m.group(2))+int(n.group(2))`for n in f('(-?d+)x^(d+)',b))for m in f('(-?d+)x^(d+)',a))


                                                                            Try it online!



                                                                            Side note: First time doing a code golf challenge, so sorry if the attempt sucks haha






                                                                            share|improve this answer








                                                                            New contributor




                                                                            GotCubes is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                                                            Check out our Code of Conduct.






                                                                            $endgroup$








                                                                            • 1




                                                                              $begingroup$
                                                                              Welcome to PPCG! I'm not much of a python programmer, but if your submission is longer than a SNOBOL one, there's probably room for improvement, heheh. Perhaps you can find help at Tips for Golfing in Python or Tips for Golfing in <all languages>! Hope you enjoy the time you spend here :-)
                                                                              $endgroup$
                                                                              – Giuseppe
                                                                              4 hours ago
















                                                                            0












                                                                            $begingroup$


                                                                            Python 2, 193 bytes





                                                                            import re
                                                                            f=re.finditer
                                                                            lambda a,b:' + '.join(' + '.join(`int(m.group(1))*int(n.group(1))`+'x^'+`int(m.group(2))+int(n.group(2))`for n in f('(-?d+)x^(d+)',b))for m in f('(-?d+)x^(d+)',a))


                                                                            Try it online!



                                                                            Side note: First time doing a code golf challenge, so sorry if the attempt sucks haha






                                                                            share|improve this answer








                                                                            New contributor




                                                                            GotCubes is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                                                            Check out our Code of Conduct.






                                                                            $endgroup$








                                                                            • 1




                                                                              $begingroup$
                                                                              Welcome to PPCG! I'm not much of a python programmer, but if your submission is longer than a SNOBOL one, there's probably room for improvement, heheh. Perhaps you can find help at Tips for Golfing in Python or Tips for Golfing in <all languages>! Hope you enjoy the time you spend here :-)
                                                                              $endgroup$
                                                                              – Giuseppe
                                                                              4 hours ago














                                                                            0












                                                                            0








                                                                            0





                                                                            $begingroup$


                                                                            Python 2, 193 bytes





                                                                            import re
                                                                            f=re.finditer
                                                                            lambda a,b:' + '.join(' + '.join(`int(m.group(1))*int(n.group(1))`+'x^'+`int(m.group(2))+int(n.group(2))`for n in f('(-?d+)x^(d+)',b))for m in f('(-?d+)x^(d+)',a))


                                                                            Try it online!



                                                                            Side note: First time doing a code golf challenge, so sorry if the attempt sucks haha






                                                                            share|improve this answer








                                                                            New contributor




                                                                            GotCubes is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                                                            Check out our Code of Conduct.






                                                                            $endgroup$




                                                                            Python 2, 193 bytes





                                                                            import re
                                                                            f=re.finditer
                                                                            lambda a,b:' + '.join(' + '.join(`int(m.group(1))*int(n.group(1))`+'x^'+`int(m.group(2))+int(n.group(2))`for n in f('(-?d+)x^(d+)',b))for m in f('(-?d+)x^(d+)',a))


                                                                            Try it online!



                                                                            Side note: First time doing a code golf challenge, so sorry if the attempt sucks haha







                                                                            share|improve this answer








                                                                            New contributor




                                                                            GotCubes is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                                                            Check out our Code of Conduct.









                                                                            share|improve this answer



                                                                            share|improve this answer






                                                                            New contributor




                                                                            GotCubes is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                                                            Check out our Code of Conduct.









                                                                            answered 4 hours ago









                                                                            GotCubesGotCubes

                                                                            1




                                                                            1




                                                                            New contributor




                                                                            GotCubes is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                                                            Check out our Code of Conduct.





                                                                            New contributor





                                                                            GotCubes is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                                                            Check out our Code of Conduct.






                                                                            GotCubes is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                                                            Check out our Code of Conduct.







                                                                            • 1




                                                                              $begingroup$
                                                                              Welcome to PPCG! I'm not much of a python programmer, but if your submission is longer than a SNOBOL one, there's probably room for improvement, heheh. Perhaps you can find help at Tips for Golfing in Python or Tips for Golfing in <all languages>! Hope you enjoy the time you spend here :-)
                                                                              $endgroup$
                                                                              – Giuseppe
                                                                              4 hours ago













                                                                            • 1




                                                                              $begingroup$
                                                                              Welcome to PPCG! I'm not much of a python programmer, but if your submission is longer than a SNOBOL one, there's probably room for improvement, heheh. Perhaps you can find help at Tips for Golfing in Python or Tips for Golfing in <all languages>! Hope you enjoy the time you spend here :-)
                                                                              $endgroup$
                                                                              – Giuseppe
                                                                              4 hours ago








                                                                            1




                                                                            1




                                                                            $begingroup$
                                                                            Welcome to PPCG! I'm not much of a python programmer, but if your submission is longer than a SNOBOL one, there's probably room for improvement, heheh. Perhaps you can find help at Tips for Golfing in Python or Tips for Golfing in <all languages>! Hope you enjoy the time you spend here :-)
                                                                            $endgroup$
                                                                            – Giuseppe
                                                                            4 hours ago





                                                                            $begingroup$
                                                                            Welcome to PPCG! I'm not much of a python programmer, but if your submission is longer than a SNOBOL one, there's probably room for improvement, heheh. Perhaps you can find help at Tips for Golfing in Python or Tips for Golfing in <all languages>! Hope you enjoy the time you spend here :-)
                                                                            $endgroup$
                                                                            – Giuseppe
                                                                            4 hours ago












                                                                            0












                                                                            $begingroup$


                                                                            Retina, 110 bytes



                                                                            SS+(?=.*n(.+))
                                                                            $1#$&
                                                                            |" + "L$v` (-?)(d+)x.(d+).*?#(-?)(d+)x.(d+)
                                                                            $1$4$.($2*$5*)x^$.($3*_$6*
                                                                            --|-(0)
                                                                            $1


                                                                            Try it online! Explanation:



                                                                            SS+(?=.*n(.+))
                                                                            $1#$&


                                                                            Prefix each term in the first input with a #, a copy of the second input, and a space. This means that all of the terms in copies of the second input are preceded by a space and none of the terms from the first input are.



                                                                            |" + "L$v` (-?)(d+)x.(d+).*?#(-?)(d+)x.(d+)
                                                                            $1$4$.($2*$5*)x^$.($3*_$6*


                                                                            Match all of the copies of terms in the second input and their corresponding term from the first input. Concatenate any - signs, multiply the coefficients, and add the indices. Finally join all of the resulting substitutions with the string  + .



                                                                            --|-(0)
                                                                            $1


                                                                            Delete any pairs of -s and convert -0 to 0.






                                                                            share|improve this answer









                                                                            $endgroup$

















                                                                              0












                                                                              $begingroup$


                                                                              Retina, 110 bytes



                                                                              SS+(?=.*n(.+))
                                                                              $1#$&
                                                                              |" + "L$v` (-?)(d+)x.(d+).*?#(-?)(d+)x.(d+)
                                                                              $1$4$.($2*$5*)x^$.($3*_$6*
                                                                              --|-(0)
                                                                              $1


                                                                              Try it online! Explanation:



                                                                              SS+(?=.*n(.+))
                                                                              $1#$&


                                                                              Prefix each term in the first input with a #, a copy of the second input, and a space. This means that all of the terms in copies of the second input are preceded by a space and none of the terms from the first input are.



                                                                              |" + "L$v` (-?)(d+)x.(d+).*?#(-?)(d+)x.(d+)
                                                                              $1$4$.($2*$5*)x^$.($3*_$6*


                                                                              Match all of the copies of terms in the second input and their corresponding term from the first input. Concatenate any - signs, multiply the coefficients, and add the indices. Finally join all of the resulting substitutions with the string  + .



                                                                              --|-(0)
                                                                              $1


                                                                              Delete any pairs of -s and convert -0 to 0.






                                                                              share|improve this answer









                                                                              $endgroup$















                                                                                0












                                                                                0








                                                                                0





                                                                                $begingroup$


                                                                                Retina, 110 bytes



                                                                                SS+(?=.*n(.+))
                                                                                $1#$&
                                                                                |" + "L$v` (-?)(d+)x.(d+).*?#(-?)(d+)x.(d+)
                                                                                $1$4$.($2*$5*)x^$.($3*_$6*
                                                                                --|-(0)
                                                                                $1


                                                                                Try it online! Explanation:



                                                                                SS+(?=.*n(.+))
                                                                                $1#$&


                                                                                Prefix each term in the first input with a #, a copy of the second input, and a space. This means that all of the terms in copies of the second input are preceded by a space and none of the terms from the first input are.



                                                                                |" + "L$v` (-?)(d+)x.(d+).*?#(-?)(d+)x.(d+)
                                                                                $1$4$.($2*$5*)x^$.($3*_$6*


                                                                                Match all of the copies of terms in the second input and their corresponding term from the first input. Concatenate any - signs, multiply the coefficients, and add the indices. Finally join all of the resulting substitutions with the string  + .



                                                                                --|-(0)
                                                                                $1


                                                                                Delete any pairs of -s and convert -0 to 0.






                                                                                share|improve this answer









                                                                                $endgroup$




                                                                                Retina, 110 bytes



                                                                                SS+(?=.*n(.+))
                                                                                $1#$&
                                                                                |" + "L$v` (-?)(d+)x.(d+).*?#(-?)(d+)x.(d+)
                                                                                $1$4$.($2*$5*)x^$.($3*_$6*
                                                                                --|-(0)
                                                                                $1


                                                                                Try it online! Explanation:



                                                                                SS+(?=.*n(.+))
                                                                                $1#$&


                                                                                Prefix each term in the first input with a #, a copy of the second input, and a space. This means that all of the terms in copies of the second input are preceded by a space and none of the terms from the first input are.



                                                                                |" + "L$v` (-?)(d+)x.(d+).*?#(-?)(d+)x.(d+)
                                                                                $1$4$.($2*$5*)x^$.($3*_$6*


                                                                                Match all of the copies of terms in the second input and their corresponding term from the first input. Concatenate any - signs, multiply the coefficients, and add the indices. Finally join all of the resulting substitutions with the string  + .



                                                                                --|-(0)
                                                                                $1


                                                                                Delete any pairs of -s and convert -0 to 0.







                                                                                share|improve this answer












                                                                                share|improve this answer



                                                                                share|improve this answer










                                                                                answered 4 hours ago









                                                                                NeilNeil

                                                                                82.7k745179




                                                                                82.7k745179





















                                                                                    0












                                                                                    $begingroup$


                                                                                    Jelly, 28 bytes



                                                                                    ṣ”+ṣ”xV$€)p/ZPSƭ€j⁾x^Ʋ€j“ + 


                                                                                    Try it online!



                                                                                    Full program. Takes the two polynomials as a list of two strings.






                                                                                    share|improve this answer









                                                                                    $endgroup$

















                                                                                      0












                                                                                      $begingroup$


                                                                                      Jelly, 28 bytes



                                                                                      ṣ”+ṣ”xV$€)p/ZPSƭ€j⁾x^Ʋ€j“ + 


                                                                                      Try it online!



                                                                                      Full program. Takes the two polynomials as a list of two strings.






                                                                                      share|improve this answer









                                                                                      $endgroup$















                                                                                        0












                                                                                        0








                                                                                        0





                                                                                        $begingroup$


                                                                                        Jelly, 28 bytes



                                                                                        ṣ”+ṣ”xV$€)p/ZPSƭ€j⁾x^Ʋ€j“ + 


                                                                                        Try it online!



                                                                                        Full program. Takes the two polynomials as a list of two strings.






                                                                                        share|improve this answer









                                                                                        $endgroup$




                                                                                        Jelly, 28 bytes



                                                                                        ṣ”+ṣ”xV$€)p/ZPSƭ€j⁾x^Ʋ€j“ + 


                                                                                        Try it online!



                                                                                        Full program. Takes the two polynomials as a list of two strings.







                                                                                        share|improve this answer












                                                                                        share|improve this answer



                                                                                        share|improve this answer










                                                                                        answered 2 hours ago









                                                                                        Erik the OutgolferErik the Outgolfer

                                                                                        33k429106




                                                                                        33k429106





















                                                                                            0












                                                                                            $begingroup$


                                                                                            C# (Visual C# Interactive Compiler), 192 190 188 bytes





                                                                                            n=>m=>string.Join(g="+",from a in n.Split(g)from b in m.Split(g)select f(a.Split(p="x^")[0])*f(b.Split(p)[0])+p+(f(a.Split(p)[1])+f(b.Split(p)[1])));Func<string,int>f=int.Parse;string p,g;


                                                                                            Query syntax seems to be a byte shorter than method syntax.



                                                                                            At least I beat SNOBOL.



                                                                                            Try it online!






                                                                                            share|improve this answer











                                                                                            $endgroup$












                                                                                            • $begingroup$
                                                                                              Sorry, not beating SNOBOL any more!
                                                                                              $endgroup$
                                                                                              – Giuseppe
                                                                                              1 hour ago
















                                                                                            0












                                                                                            $begingroup$


                                                                                            C# (Visual C# Interactive Compiler), 192 190 188 bytes





                                                                                            n=>m=>string.Join(g="+",from a in n.Split(g)from b in m.Split(g)select f(a.Split(p="x^")[0])*f(b.Split(p)[0])+p+(f(a.Split(p)[1])+f(b.Split(p)[1])));Func<string,int>f=int.Parse;string p,g;


                                                                                            Query syntax seems to be a byte shorter than method syntax.



                                                                                            At least I beat SNOBOL.



                                                                                            Try it online!






                                                                                            share|improve this answer











                                                                                            $endgroup$












                                                                                            • $begingroup$
                                                                                              Sorry, not beating SNOBOL any more!
                                                                                              $endgroup$
                                                                                              – Giuseppe
                                                                                              1 hour ago














                                                                                            0












                                                                                            0








                                                                                            0





                                                                                            $begingroup$


                                                                                            C# (Visual C# Interactive Compiler), 192 190 188 bytes





                                                                                            n=>m=>string.Join(g="+",from a in n.Split(g)from b in m.Split(g)select f(a.Split(p="x^")[0])*f(b.Split(p)[0])+p+(f(a.Split(p)[1])+f(b.Split(p)[1])));Func<string,int>f=int.Parse;string p,g;


                                                                                            Query syntax seems to be a byte shorter than method syntax.



                                                                                            At least I beat SNOBOL.



                                                                                            Try it online!






                                                                                            share|improve this answer











                                                                                            $endgroup$




                                                                                            C# (Visual C# Interactive Compiler), 192 190 188 bytes





                                                                                            n=>m=>string.Join(g="+",from a in n.Split(g)from b in m.Split(g)select f(a.Split(p="x^")[0])*f(b.Split(p)[0])+p+(f(a.Split(p)[1])+f(b.Split(p)[1])));Func<string,int>f=int.Parse;string p,g;


                                                                                            Query syntax seems to be a byte shorter than method syntax.



                                                                                            At least I beat SNOBOL.



                                                                                            Try it online!







                                                                                            share|improve this answer














                                                                                            share|improve this answer



                                                                                            share|improve this answer








                                                                                            edited 2 hours ago

























                                                                                            answered 2 hours ago









                                                                                            Embodiment of IgnoranceEmbodiment of Ignorance

                                                                                            2,916127




                                                                                            2,916127











                                                                                            • $begingroup$
                                                                                              Sorry, not beating SNOBOL any more!
                                                                                              $endgroup$
                                                                                              – Giuseppe
                                                                                              1 hour ago

















                                                                                            • $begingroup$
                                                                                              Sorry, not beating SNOBOL any more!
                                                                                              $endgroup$
                                                                                              – Giuseppe
                                                                                              1 hour ago
















                                                                                            $begingroup$
                                                                                            Sorry, not beating SNOBOL any more!
                                                                                            $endgroup$
                                                                                            – Giuseppe
                                                                                            1 hour ago





                                                                                            $begingroup$
                                                                                            Sorry, not beating SNOBOL any more!
                                                                                            $endgroup$
                                                                                            – Giuseppe
                                                                                            1 hour ago


















                                                                                            draft saved

                                                                                            draft discarded
















































                                                                                            If this is an answer to a challenge…



                                                                                            • …Be sure to follow the challenge specification. However, please refrain from exploiting obvious loopholes. Answers abusing any of the standard loopholes are considered invalid. If you think a specification is unclear or underspecified, comment on the question instead.


                                                                                            • …Try to optimize your score. For instance, answers to code-golf challenges should attempt to be as short as possible. You can always include a readable version of the code in addition to the competitive one.
                                                                                              Explanations of your answer make it more interesting to read and are very much encouraged.


                                                                                            • …Include a short header which indicates the language(s) of your code and its score, as defined by the challenge.


                                                                                            More generally…



                                                                                            • …Please make sure to answer the question and provide sufficient detail.


                                                                                            • …Avoid asking for help, clarification or responding to other answers (use comments instead).




                                                                                            draft saved


                                                                                            draft discarded














                                                                                            StackExchange.ready(
                                                                                            function ()
                                                                                            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f182972%2fmultiply-two-integer-polynomials%23new-answer', 'question_page');

                                                                                            );

                                                                                            Post as a guest















                                                                                            Required, but never shown





















































                                                                                            Required, but never shown














                                                                                            Required, but never shown












                                                                                            Required, but never shown







                                                                                            Required, but never shown

































                                                                                            Required, but never shown














                                                                                            Required, but never shown












                                                                                            Required, but never shown







                                                                                            Required, but never shown







                                                                                            Popular posts from this blog

                                                                                            Францішак Багушэвіч Змест Сям'я | Біяграфія | Творчасць | Мова Багушэвіча | Ацэнкі дзейнасці | Цікавыя факты | Спадчына | Выбраная бібліяграфія | Ушанаванне памяці | У філатэліі | Зноскі | Літаратура | Спасылкі | НавігацыяЛяхоўскі У. Рупіўся дзеля Бога і людзей: Жыццёвы шлях Лявона Вітан-Дубейкаўскага // Вольскі і Памідораў з песняй пра немца Адвакат, паэт, народны заступнік Ашмянскі веснікВ Минске появится площадь Богушевича и улица Сырокомли, Белорусская деловая газета, 19 июля 2001 г.Айцец беларускай нацыянальнай ідэі паўстаў у бронзе Сяргей Аляксандравіч Адашкевіч (1918, Мінск). 80-я гады. Бюст «Францішак Багушэвіч».Яўген Мікалаевіч Ціхановіч. «Партрэт Францішка Багушэвіча»Мікола Мікалаевіч Купава. «Партрэт зачынальніка новай беларускай літаратуры Францішка Багушэвіча»Уладзімір Іванавіч Мелехаў. На помніку «Змагарам за родную мову» Барэльеф «Францішак Багушэвіч»Памяць пра Багушэвіча на Віленшчыне Страчаная сталіца. Беларускія шыльды на вуліцах Вільні«Krynica». Ideologia i przywódcy białoruskiego katolicyzmuФранцішак БагушэвічТворы на knihi.comТворы Францішка Багушэвіча на bellib.byСодаль Уладзімір. Францішак Багушэвіч на Лідчыне;Луцкевіч Антон. Жыцьцё і творчасьць Фр. Багушэвіча ў успамінах ягоных сучасьнікаў // Запісы Беларускага Навуковага таварыства. Вільня, 1938. Сшытак 1. С. 16-34.Большая российская1188761710000 0000 5537 633Xn9209310021619551927869394п

                                                                                            На ростанях Змест Гісторыя напісання | Месца дзеяння | Час дзеяння | Назва | Праблематыка трылогіі | Аўтабіяграфічнасць | Трылогія ў тэатры і кіно | Пераклады | У культуры | Зноскі Літаратура | Спасылкі | НавігацыяДагледжаная версіяправерана1 зменаДагледжаная версіяправерана1 зменаАкадэмік МІЦКЕВІЧ Канстанцін Міхайлавіч (Якуб Колас) Прадмова М. І. Мушынскага, доктара філалагічных навук, члена-карэспандэнта Нацыянальнай акадэміі навук Рэспублікі Беларусь, прафесараНашаніўцы ў трылогіі Якуба Коласа «На ростанях»: вобразы і прататыпы125 лет Янке МавруКнижно-документальная выставка к 125-летию со дня рождения Якуба Коласа (1882—1956)Колас Якуб. Новая зямля (паэма), На ростанях (трылогія). Сулкоўскі Уладзімір. Радзіма Якуба Коласа (серыял жывапісных палотнаў)Вокладка кнігіІлюстрацыя М. С. БасалыгіНа ростаняхАўдыёверсія трылогііВ. Жолтак У Люсiнскай школе 1959

                                                                                            Беларусь Змест Назва Гісторыя Геаграфія Сімволіка Дзяржаўны лад Палітычныя партыі Міжнароднае становішча і знешняя палітыка Адміністрацыйны падзел Насельніцтва Эканоміка Культура і грамадства Сацыяльная сфера Узброеныя сілы Заўвагі Літаратура Спасылкі НавігацыяHGЯOiТоп-2011 г. (па версіі ej.by)Топ-2013 г. (па версіі ej.by)Топ-2016 г. (па версіі ej.by)Топ-2017 г. (па версіі ej.by)Нацыянальны статыстычны камітэт Рэспублікі БеларусьШчыльнасць насельніцтва па краінахhttp://naviny.by/rubrics/society/2011/09/16/ic_articles_116_175144/А. Калечыц, У. Ксяндзоў. Спробы засялення краю неандэртальскім чалавекам.І ў Менску былі мамантыА. Калечыц, У. Ксяндзоў. Старажытны каменны век (палеаліт). Першапачатковае засяленне тэрыторыіГ. Штыхаў. Балты і славяне ў VI—VIII стст.М. Клімаў. Полацкае княства ў IX—XI стст.Г. Штыхаў, В. Ляўко. Палітычная гісторыя Полацкай зямліГ. Штыхаў. Дзяржаўны лад у землях-княствахГ. Штыхаў. Дзяржаўны лад у землях-княствахБеларускія землі ў складзе Вялікага Княства ЛітоўскагаЛюблінская унія 1569 г."The Early Stages of Independence"Zapomniane prawdy25 гадоў таму было аб'яўлена, што Язэп Пілсудскі — беларус (фота)Наша вадаДакументы ЧАЭС: Забруджванне тэрыторыі Беларусі « ЧАЭС Зона адчужэнняСведения о политических партиях, зарегистрированных в Республике Беларусь // Министерство юстиции Республики БеларусьСтатыстычны бюлетэнь „Полаўзроставая структура насельніцтва Рэспублікі Беларусь на 1 студзеня 2012 года і сярэднегадовая колькасць насельніцтва за 2011 год“Индекс человеческого развития Беларуси — не было бы нижеБеларусь занимает первое место в СНГ по индексу развития с учетом гендерного факцёраНацыянальны статыстычны камітэт Рэспублікі БеларусьКанстытуцыя РБ. Артыкул 17Трансфармацыйныя задачы БеларусіВыйсце з крызісу — далейшае рэфармаванне Беларускі рубель — сусветны лідар па дэвальвацыяхПра змену коштаў у кастрычніку 2011 г.Бядней за беларусаў у СНД толькі таджыкіСярэдні заробак у верасні дасягнуў 2,26 мільёна рублёўЭканомікаГаласуем за ТОП-100 беларускай прозыСучасныя беларускія мастакіАрхитектура Беларуси BELARUS.BYА. Каханоўскі. Культура Беларусі ўсярэдзіне XVII—XVIII ст.Анталогія беларускай народнай песні, гуказапісы спеваўБеларускія Музычныя IнструментыБеларускі рок, які мы страцілі. Топ-10 гуртоў«Мясцовы час» — нязгаслая легенда беларускай рок-музыкіСЯРГЕЙ БУДКІН. МЫ НЯ ЗНАЕМ СВАЁЙ МУЗЫКІМ. А. Каладзінскі. НАРОДНЫ ТЭАТРМагнацкія культурныя цэнтрыПублічная дыскусія «Беларуская новая пьеса: без беларускай мовы ці беларуская?»Беларускія драматургі па-ранейшаму лепш ставяцца за мяжой, чым на радзіме«Працэс незалежнага кіно пайшоў, і дзяржаву турбуе яго непадкантрольнасць»Беларускія філосафы ў пошуках прасторыВсе идём в библиотекуАрхіваванаАб Нацыянальнай праграме даследавання і выкарыстання касмічнай прасторы ў мірных мэтах на 2008—2012 гадыУ космас — разам.У суседнім з Барысаўскім раёне пабудуюць Камандна-вымяральны пунктСвяты і абрады беларусаў«Мірныя бульбашы з малой краіны» — 5 непраўдзівых стэрэатыпаў пра БеларусьМ. Раманюк. Беларускае народнае адзеннеУ Беларусі скарачаецца колькасць злачынстваўЛукашэнка незадаволены мінскімі ўладамі Крадзяжы складаюць у Мінску каля 70% злачынстваў Узровень злачыннасці ў Мінскай вобласці — адзін з самых высокіх у краіне Генпракуратура аналізуе стан са злачыннасцю ў Беларусі па каэфіцыенце злачыннасці У Беларусі стабілізавалася крымінагеннае становішча, лічыць генпракурорЗамежнікі сталі здзяйсняць у Беларусі больш злачынстваўМУС Беларусі турбуе рост рэцыдыўнай злачыннасціЯ з ЖЭСа. Дазволіце вас абкрасці! Рэйтынг усіх службаў і падраздзяленняў ГУУС Мінгарвыканкама вырасАб КДБ РБГісторыя Аператыўна-аналітычнага цэнтра РБГісторыя ДКФРТаможняagentura.ruБеларусьBelarus.by — Афіцыйны сайт Рэспублікі БеларусьСайт урада БеларусіRadzima.org — Збор архітэктурных помнікаў, гісторыя Беларусі«Глобус Беларуси»Гербы и флаги БеларусиАсаблівасці каменнага веку на БеларусіА. Калечыц, У. Ксяндзоў. Старажытны каменны век (палеаліт). Першапачатковае засяленне тэрыторыіУ. Ксяндзоў. Сярэдні каменны век (мезаліт). Засяленне краю плямёнамі паляўнічых, рыбакоў і збіральнікаўА. Калечыц, М. Чарняўскі. Плямёны на тэрыторыі Беларусі ў новым каменным веку (неаліце)А. Калечыц, У. Ксяндзоў, М. Чарняўскі. Гаспадарчыя заняткі ў каменным векуЭ. Зайкоўскі. Духоўная культура ў каменным векуАсаблівасці бронзавага веку на БеларусіФарміраванне супольнасцей ранняга перыяду бронзавага векуФотографии БеларусиРоля беларускіх зямель ва ўтварэнні і ўмацаванні ВКЛВ. Фадзеева. З гісторыі развіцця беларускай народнай вышыўкіDMOZGran catalanaБольшая российскаяBritannica (анлайн)Швейцарскі гістарычны15325917611952699xDA123282154079143-90000 0001 2171 2080n9112870100577502ge128882171858027501086026362074122714179пппппп