多項式の計算を行います。 多項式同士の和・差・積の算出と、値の代入(<<-/<<:)ができます。
> Kou 2 [2,3]
+2a^2b^3
第一引数は係数、第二引数は文字の乗数です。上記例だと、2*(a*a)*(b*b*b)
です。
文字は、自動的にaから順に割り振られます。
27文字よりたくさんの文字を含む式は、正しく表示できません。['a' ..]
となっているところを書き換える必要があります。
> let k1 = Kou 2 []
> let k2 = Kou 1 [1]
>
> Shk [k1,k2]
+2+a
式は項のリストです。各項は足し合わせます。(項の定数が負値だと引き算です) 特に単項式を作る場合、monomial というバイパスを用意しています。
> monomial 2 [1,2]
+2ab^2
> let a = Shk [Kou 1 [1]]
> let b = Shk [Kou 1 [0,1]]
> (a + b) <<- [2]
+2+b
各文字に値を代入します。戻り値の型は式です。 上の例のように(文字に対して値が足りない場合)、文字の一部にだけ代入を行うことができます。(ただし、アルファベットの先頭から順です。)結果は常に式になります。
> let a = monomial 1 [1]
> let b = monomial 1 [0,1]
> (a^2 - b^2) <<: [2]
4
> (a^2 - b^2) <<: [a-b,a+b]
-4ab
各文字に値を代入します。戻り値の型は代入の右辺の要素の型なります。 上記例のように、文字に対して値が足りない場合は0が代入されます。 式に別の式を代入すれば、式変換ができます。