Command Line (Maxima 5.50.0 Manual)

## 4 Command Line ¶

### 4.1 Introduction to Command Line ¶

### 4.2 Functions and Variables for Command Line ¶

システム変数: __ ¶

  `__`は、現在評価中の入力式です。 すなわち、入力式 exprが評価されている間、 `__`は exprです。

  `__`は、入力が整理されたり評価されたりする前に入力式に割り当てられます。 しかし表示される時、`__`の値は（評価はされませんが）整理されます。

  `batch`と `load`は `__`を認識します。 `batch`が処理するファイル内では、 `__`は対話プロンプトでのそれと同じ意味になります。 `load`が処理するファイル内では、 `__`は対話プロンプトやバッチファイルの中で直前に入力された入力式にバインドされています; `__`は処理中のファイル内の入力式にはバインドされません。 特に、 `load (filename)`が対話プロンプトからコールされた時、 `__`は、ファイルが処理されている間、 `load (filename)`にバインドされます。

  `_`や `%`も参照してください。

  例:

      (%i1) print ("I was called as", __);
      I was called as print(I was called as, __)
      (%o1)              print(I was called as, __)
      (%i2) foo (__);
      (%o2)                     foo(foo(__))
      (%i3) g (x) := (print ("Current input expression =", __), 0);
      (%o3) g(x) := (print("Current input expression =", __), 0)
      (%i4) [aa : 1, bb : 2, cc : 3];
      (%o4)                       [1, 2, 3]
      (%i5) (aa + bb + cc)/(dd + ee + g(x));
                                  cc + bb + aa
      Current input expression = --------------
                                 g(x) + ee + dd
                                      6
      (%o5)                        -------
                                   ee + dd

  Global variables ·

システム変数: _ ¶

  `_`は直前の入力式です。 (例えば、`%i1`, `%i2`, `%i3`, …)

  `_`は、入力が整理されたり評価されたりする前に、入力式に割り当てられます。 しかし、 `_`の値は、表示される時（評価はされませんが）整理されます。

  `batch`と `load`は `_`を認識します。 `batch`が処理するファイル内では、 `_`は対話プロンプトでのそれと同じ意味になります。 `load`が処理するファイル内では、 `_`は、対話プロンプトやバッチファイルの中で、直前に入力された入力式にバインドされます; `_`は処理中のファイル内の入力式にはバインドされません。

  `__`や `%`も参照してください。

  例:

      (%i1) 13 + 29;
      (%o1)                          42
      (%i2) :lisp $_
      ((MPLUS) 13 29)
      (%i2) _;
      (%o2)                          42
      (%i3) sin (%pi/2);
      (%o3)                           1
      (%i4) :lisp $_
      ((%SIN) ((MQUOTIENT) $%PI 2))
      (%i4) _;
      (%o4)                           1
      (%i5) a: 13$
      (%i6) b: 29$
      (%i7) a + b;
      (%o7)                          42
      (%i8) :lisp $_
      ((MPLUS) $A $B)
      (%i8) _;
      (%o8)                         b + a
      (%i9) a + b;
      (%o9)                          42
      (%i10) ev (_);
      (%o10)                         42

  Console interaction · Global variables ·

システム変数: % ¶

  `%`はMaximaが直前に計算した出力式です。 (例えば、 `%o1`, `%o2`, `%o3`, …) 出力の表示には無関係です。

  `batch`と `load`は`%`を認識します。 `batch`が処理するファイル内では、 `%`は対話プロンプトでのそれと同じ意味になります。 `load`が処理するファイル内では、 `%`は、対話プロンプトやバッチファイルの中で、直前に計算された出力式にバインドされます; `%`は、処理中のファイル内の出力式にはバインドされません。

  `_`, `%%`, `%th`も参照してください。

  Console interaction · Global variables ·

システム変数: %% ¶

  合成文、すなわち`block`, `lambda`, もしくは`(s_1, ..., s_n)`の中で、 `%%`は前の文の値です。

  合成文の最初の文もしくは合成文の外側では`%%`は未定義です。

  `%%`は、`batch`や `load`で認識され、 対話プロンプトでのそれと同じ意味になります。

  `%`も参照してください。

  例:

  以下の二つの例は同じ結果になります。

      (%i1) block (integrate (x^5, x), ev (%%, x=2) - ev (%%, x=1));
                                     21
      (%o1)                          --
                                     2
      (%i2) block ([prev], prev: integrate (x^5, x),
                     ev (prev, x=2) - ev (prev, x=1));
                                     21
      (%o2)                          --
                                     2

  合成文は他の合成文を含むかもしれません。 文が単文か合成文かに関係なく、 `%%`は前の文の値です。

      (%i3) block (block (a^n, %%*42), %%/6);
                                       n
      (%o3)                         7 a

  合成文の中ではブレイクプロンプトで`%%`の値を検査することができます。 ブレイクプロンプトは `break`関数を実行することで開きます。 例えば、以下の例で`%%;`を入力すると、`42`が出力されます。

      (%i4) block (a: 42, break ())$

      Entering a Maxima break point. Type 'exit;' to resume.
      _%%;
      42
      _

  Global variables ·

関数: %th (i) ¶

  i番前の出力式の値。 すなわち、計算される次の式をn番目の出力とすると `%th (m)`は、(n - m)番目の出力です。

  `batch`と`load`は`%th`を認識されます。 `batch`が処理するファイル内では、 `%th`は、対話プロンプトでのそれと同じ意味になります。 `load`が処理するファイル内では、 `%th`は、対話プロンプトやバッチファイルの中で、直前に計算された出力式にバインドされます; `%th`は、処理中のファイル内の出力式にはバインドされません。

  `%`と `%%`も参照してください。

  例:

  `batch`ファイルの中でとか、出力式のグループを参照する時`%th`は役立ちます。 この例は`s`を最後の5つの出力式の和に設定します。

      (%i1) 1;2;3;4;5;
      (%o1)                           1
      (%o2)                           2
      (%o3)                           3
      (%o4)                           4
      (%o5)                           5
      (%i6) block (s: 0, for i:1 thru 5 do s: s + %th(i), s);
      (%o6)                          15

  Console interaction ·

特殊シンボル: ? ¶

  関数名や変数名の前置としての`?`は、 名前が、Maximaの名前ではなくLispの名前であることを意味します。 例えば、`?round`は、Lisp関数`ROUND`を意味します。 この点に関して更に知るにはLisp and Maximaを参照してください。

  表記`? word` (空白を空けて単語が続くクエスチョンマーク)は `describe("word")`と同値です。 クエスチョンマークは入力ラインの先頭になければいけません; そうでなければドキュメンテーションのリクエストとして認識されません。 `describe`も参照してください。

  Help · Console interaction ·

特殊シンボル: ?? ¶

  表記`?? word`(空白を空けて単語が続く`??`)は `describe("word", inexact)`と同値です。 クエスチョンマークは入力行の先頭になければいけません; そうでなければドキュメンテーションのリクエストとして認識されません。 `describe`も参照してください。

  Help · Console interaction ·

オプション変数: inchar ¶

  デフォルト値: `%i`

  `inchar`はユーザーが入力した式のラベルの前置です。 Maximaは、 `inchar`と`linenum`を連結することで、 入力式それぞれのラベルを自動的に構成します。

  `inchar`は単一文字である必要はなく、 任意の文字列もしくはシンボルを割り当てられます。 Maximaは内部的に前置の最初の文字だけを考慮するので、 前置`inchar`, `outchar`, `linechar`は異なる最初の文字を持たなければいけません。 そうでなければ`kill(inlables)`のようないくつかのコマンドは期待通りに動きません。

  `labels`も参照してください。

  例:

      (%i1) inchar: "input";
      (%o1)                         input
      (input2) expand((a+b)^3);
                           3        2      2      3
      (%o2)               b  + 3 a b  + 3 a  b + a
      (input3)

  Display flags and variables ·

システム変数: infolists ¶

  デフォルト値: `[]`

  `infolists`はMaximaに関する情報リストすべての名前のリストです。 これらは以下の通りです:

  `labels`

    すべてのバインドされた`%i`, `%o`, `%t`ラベル

  `values`

    `:`や`::`や関数バインドが生成する、 ユーザー変数であって、Maximaオプションやスイッチでない、 すべてのバインドされたアトム

  `functions`

    `:=`や`define`が生成するすべてのユーザー定義関数

  `arrays`

    `:`, `::`, または`:=`が生成するすべての宣言配列と未宣言配列

  `macros`

    `::=`が生成したすべてのユーザー定義マクロ関数

  `myoptions`

    (それらが後にデフォルト値に再設定されようがされまいが) ユーザーが再設定したすべてのオプション

  `rules`

    `tellsimp`, `tellsimpafter`, `defmatch`, または`defrule`が生成するすべてのユーザー定義パターンマッチングと整理規則

  `aliases`

    `alias`, `ordergreat`, `orderless`関数が生成するか、 `declare`を使ってアトムを`noun`として宣言することで生成された、 ユーザー定義エーリアスを持つすべてのアトム

  `dependencies`

    `depends`や`gradef`関数が生成する関数依存性を持つすべてのアトム

  `gradefs`

    `gradef`関数が生成するユーザー定義の導関数を持つすべての関数

  `props`

    `declare`関数で確立されるプロパティはもちろん、 `atvalue`や`matchdeclare`などが確立するプロパティで、 上で述べたもの以外の任意のプロパティを持つすべてのアトム

  `let_rule_packages`

    特別パッケージ`default_let_rule_package`に加えて すべてのユーザー定義`let`規則パッケージ (`default_let_rule_package`は、 ユーザーが陽に設定していない時使われる規則パッケージの名前です。)

  Declarations and inferences · Global variables ·

関数: kill (a_1, …, a_n) ¶
関数: kill (labels) ¶
関数: kill (inlabels, outlabels, linelabels) ¶
関数: kill (n) ¶
関数: kill ([m, n]) ¶
関数: kill (values, functions, arrays, …) ¶
関数: kill (all) ¶
関数: kill (allbut (a_1, …, a_n)) ¶

  引数a_1, …, a_nからすべてのバインド（値、関数、配列、ルール）を解除します。 引数a_kはシンボルか配列要素を取り得ます。 a_kが配列要素の時、`kill`は配列の他の要素には影響することなくその要素をアンバインドします。

  いくつかの特殊な引数が認識されます。 例えば、`kill (inlabels, functions, allbut (foo, bar))`のように、異なる引数の種類が組み合わされます。

  `kill (labels)`はそれまでに作られた入力、出力、中間式のラベルすべてをアンバインドします。 `kill (inlabels)`は `inchar`の現在の値で始まる入力ラベルのみをアンバインドします。 同様に、 `kill (outlabels)`は `outchar`の現在の値で始まる出力ラベルのみをアンバインドし、 `kill (linelabels)`は `linechar`の現在の値で始まる中間式ラベルのみをアンバインドします。

  `kill (`n`)`（nは整数）は入力、出力ラベルの最近のn個をアンバインドします。

  `kill ([m, n])`は入力、出力ラベルmからnまでをアンバインドします。

  `kill (infolist)`は infolistの中のすべての項目をアンバインドします。 ここで、infolistは（`values`, `functions`, `arrays`のような) `infolists`の中の任意の項目です。 `infolists`も参照してください。

  `kill (all)`はinfolistsのすべての項目をアンバインドします。 `kill (all)`はグローバル変数をデフォルト値にリセットしません; この点に関しては`reset`を参照してください。

  `kill (allbut (a_1, ..., a_n))`は、 a_1, ..., a_nを除いて すべてのinfolistsの中のすべての項目をアンバインドします。 `kill (allbut (infolist))`は infolist（infolistは`values`, `functions`, `arrays`など） 上の項目を除いてすべての項目をアンバインドします。

  バインドされたプロパティによって使われたメモリは、すべてのシンボルがプロパティからアンバインドされるまで解放されません。 特に、シンボルの値によって使われているメモリを解放するには、 シンボルそのもののアンバインドだけでなく、バインドされた値を表示する出力ラベルをアンバインドします。

  `kill`は引数をクォートします。 引数を評価するにはクォートクォート演算子`''`を使います。

  `kill (symbol)`はシンボルのすべてのプロパティをアンバインドします。 対照的に、関数`remvalue`, `remfunction`, `remarray`, `remrule`は特定のプロパティをアンバインドします。

  `kil`は常に、たとえ引数がバインドされていなくても、`done`を返します。

  Evaluation · Console interaction · Session management ·

関数: labels (symbol) ¶
システム変数: labels ¶

  symbolで始まる入力、出力、中間式ラベルのリストを返します。 symbolは、`inchar`, `outchar`, もしくは`linechar`の値が典型的です。 ラベル文字はパーセント記号ありでもあしでもかまいませんので、 例えば、`i`と`%i`は同じ結果になります。

  もしsymbolで始まるラベルがなければ、`labels`は空のリストを返します。

  関数`labels`は引数をクォートします。 引数を評価するにはクォートクォート演算子`''`を使います。 例えば， `labels (''inchar)`は、現在の入力ラベル文字で始まる入力ラベルを返します。

  変数`labels`は入力、出力、中間式ラベルのリストです。 `inchar`, `outchar`, もしくは`linechar`が再定義されても、以前のラベルすべてを含みます。

  デフォルトで、Maximaはそれぞれのユーザー入力式の結果を表示し、結果に出力ラベルが与えられます。 入力を`;`(セミコロン)の代わりに`$`(ドル記号)で終了することで、出力表示は抑制されます。 出力ラベルが構成され、結果にバインドされますが、表示されません。 ラベルは表示された出力ラベルと同じ方法で参照できます。 `%`や`%%`, `%th`も参照してください。

  いくつかの関数では中間式ラベルが生成されることがあります。 フラグ`programmode`は `solve`や他の関数が式のリストを返す代わりに中間式ラベルを生成するかどうかを制御します。 `ldisplay`のようないくつかの他の関数は常に中間式ラベルを生成します。

  `inchar`や`outchar`, `linechar`, `infolists`も参照してください。

  Display functions · Display flags and variables · Console interaction ·

オプション変数: linechar ¶

  デフォルト値: `%t`

  `linechar`は Maximaが生成する中間式のラベルの前置です。 Maximaは（もし表示されるなら） `linechar`と`linenum`を連結することで 中間式それぞれのラベルを構成します。

  `linechar`は単一文字である必要はなく、 任意の文字列もしくはシンボルを割り当てられます。 Maximaは内部的に 前置の最初の文字だけを考慮するので、 前置`inchar`, `outchar`, `linechar`は異なる最初の文字を持たなければいけません。 そうでなければ `kill(inlables)`のようないくつかのコマンドは期待通りに動きません。

  中間式は表示されるかもしれませんし、表示されないかもしれません。 `programmode`と`labels`も参照してください。

  Display flags and variables ·

システム変数: linenum ¶

  入力出力式の現在のペアの行番号。

  Display flags and variables · Console interaction ·

システム変数: myoptions ¶

  デフォルト値: `[]`

  `myoptions`はユーザーが再設定したオプションすべてのリストです。 初期値に再設定されたか否かに関わらずです。

  Global variables · Session management · Console interaction ·

オプション変数: nolabels ¶

  デフォルト値: `false`

  `nolabels`は`true`であれば、 入力と出力結果のラベル（それぞれ`%i`と`%o`）は表示されますが、 ラベルは結果にバインドされず、`labels`リストにも追加されません。 ラベルは結果にバインドされないので、 ガーベッジコレクションは結果が使ったメモリを回復することができます。

  そうでなければ、入力と出力の結果のラベルは結果にバインドされ、`labels`リストに追加されます。

  中間式ラベル(`%t`)は`nolabels`に影響されません; `nolabels`が`true`でも`false`でも、中間式ラベルはバインドされ、`labels`リストに追加されます。

  `batch`や`load`、 `labels`も参照してください。

  Global flags · Session management ·

オプション変数: optionset ¶

  デフォルト値: `false`

  `optionset`が`true`の時、Maximaは、Maximaオプションが再設定されるといつでも、メッセージを表示します。 もしユーザーがあるオプションの綴りが怪しく、割り当てた変数が本当にオプション変数か確認したいなら便利です。

  例:

      (%i1) optionset:true;
      assignment: assigning to option optionset
      (%o1)                         true
      (%i2) gamma_expand:true;
      assignment: assigning to option gamma_expand
      (%o2)                         true

  Global flags · Session management · Console interaction ·

オプション変数: outchar ¶

  デフォルト値: `%o`

  `outchar`はMaximaが計算した式のラベルの前置です。 `outchar`と`linenum`を連結することで、 Maximaは計算された式それぞれのラベルを自動的に構成します。 `outchar`は、単一文字である必要はなく、 任意の文字列もしくはシンボルを割り当てられます。 Maximaは内部的に前置の最初の文字だけを考慮するので、 前置`inchar`, `outchar`, `linechar`は異なる最初の文字を持たなければいけません。 そうでなければ、`kill(inlables)`のようないくつかのコマンドは期待通りに動きません。

  `labels`も参照してください。

  例:

      (%i1) outchar: "output";
      (output1)                    output
      (%i2) expand((a+b)^3);
                           3        2      2      3
      (output2)           b  + 3 a b  + 3 a  b + a
      (%i3)

  Display flags and variables ·

関数: playback () ¶
関数: playback (n) ¶
関数: playback ([m, n]) ¶
関数: playback ([m]) ¶
関数: playback (input) ¶
関数: playback (slow) ¶
関数: playback (time) ¶
関数: playback (grind) ¶

  入力、出力、中間式を表示します。再計算はしません。 `playback`はラベルにバインドされた式表示するだけです; （`print`や`describe`で表示されたテキストやエラーメッセージなど）他の出力は表示されません。 `labels`も参照してください。

  `playback`は引数をクォートします。 引数を評価するにはクォートクォート演算子`''`を使います。 `playback`は常に`done`を返します。

  `playback ()`（引数なし）は今までに生成された入力、出力、中間式すべてを表示します。 たとえ計算時に`$`終端子で出力が抑制されていても、 出力式は表示されます。

  `playback (n)`は最近のn個の式を表示します。 入力、出力、中間式それぞれを１と数えます。

  `playback ([m, n])`は m番目からn番目までの入力、出力、中間式を表示します。

  `playback ([m])`は `playback ([m, m])`と同値です; これは普通、入力と出力の式のペアを１つ表示します。

  `playback (input)`は今までに生成された入力式をすべて表示します。

  `playback (slow)`は式の間でポーズし、ユーザーが `enter`を入力するのを待ちます。 これは `demo`と似たような振る舞いです。 `playback (slow)`は、`save`や`stringout`と関連して、 役立つ式を取り出すために２次記憶ファイルを生成するときに便利です。

  `playback (time)`はそれぞれの式の計算時間を表示します。

  `playback (grind)`は入力式を `grind`関数と同じ形式で表示します。 出力式は `grind`オプションで影響を受けません。 `grind`を参照してください。

  例えば、`playback ([5, 10], grind, time, slow)`のように、 引数を組み合わせられます。

  Display functions · Console interaction ·

オプション変数: prompt ¶

  デフォルト値: `_`

  `prompt`は、`demo`関数や`playback (slow)`モード、 （`break`で呼び出された）Maximaブレイクループのプロンプトシンボルです。

  Global variables · Console interaction ·

関数: quit () ¶

  Maximaセッションを終了します。 関数は、`quit`ではなく、`quit();`もしくは`quit()$`として呼び出さなければいけないことに注意してください。

  長い計算を中断するには `control-C`をタイプしてください。 デフォルトの動作では Maximaプロンプトに戻ります。 もし`*debugger-hook*`が`nil`なら、 `control-C`はLispデバッガを開きます。 `debugging`も参照してください。

  Console interaction ·

関数: read (expr_1, …, expr_n) ¶

  expr_1, …, expr_nを表示し、 コンソールから式１つを読み込み、評価された式を返します。 式はセミコロン`;`もしくはドル記号`$`で終了します。

  `readonly`も参照してください。

      (%i1) foo: 42$
      (%i2) foo: read ("foo is", foo, " -- enter new value.")$
      foo is 42  -- enter new value.
      (a+b)^3;
      (%i3) foo;
                                           3
      (%o3)                         (b + a)

  Console interaction ·

関数: readonly (expr_1, …, expr_n) ¶

  expr_1, …, expr_nを表示し、 コンソールから式を１つ読み込み、 式を（評価せずに）返します。 式はセミコロン`;`もしくはドル記号`$`で終了します。

  `read`も参照してください。

  例:

      (%i1) aa: 7$
      (%i2) foo: readonly ("Enter an expression:");
      Enter an expression:
      2^aa;
                                        aa
      (%o2)                            2
      (%i3) foo: read ("Enter an expression:");
      Enter an expression:
      2^aa;
      (%o3)                            128

  Console interaction ·

関数: reset () ¶

  多くのグローバル変数やオプション、いくつかの他の変数をデフォルト値に再設定します。

  `reset`は Lispリスト`*variable-initial-values*`上の変数を処理します。 Lispマクロ`defmvar`は（他の動作の間に）このリストに変数を置きます。 すべてではありませんが多くのグローバル変数やオプションがdefmvarによって定義されており、 また、`defmvar`で定義されたいくつかの変数はグローバル変数でもオプションでもありません。

  Session management ·

オプション変数: showtime ¶

  デフォルト値: `false`

  `showtime`が`true`の時、出力式と一緒に計算時間と経過時間を表示します。

  計算時間は常に記録されており、 `showtime`が`false`の時でも、 `time`や`playback`で計算時間を表示することができます。

  `timer`も参照してください。

  Display flags and variables · Debugging ·

関数: to_lisp () ¶

  Maximaの下のLispシステムに入ります。`(to-maxima)`でMaximaに戻ります。

  例:

  関数を定義し、Maximaの下のLispシステムに入ります。 定義をプロパティリスト上で検査します。そして、関数定義を抽出し、因数分解し、 変数$resultに格納します。 変数はMaximaに戻った後、Maximaで使うことができます。

      (%i1) f(x):=x^2+x;
                                        2
      (%o1)                    f(x) := x  + x
      (%i2) to_lisp();
      Type (to-maxima) to restart, ($quit) to quit Maxima.

      MAXIMA> (symbol-plist '$f)
      (MPROPS (NIL MEXPR ((LAMBDA) ((MLIST) $X)
                                   ((MPLUS) ((MEXPT) $X 2) $X))))
      MAXIMA> (setq $result ($factor (caddr (mget '$f 'mexpr))))
      ((MTIMES SIMP FACTORED) $X ((MPLUS SIMP IRREDUCIBLE) 1 $X))
      MAXIMA> (to-maxima)
      Returning to Maxima
      (%o2)                         true
      (%i3) result;
      (%o3)                       x (x + 1)

  Console interaction ·

システム変数: values ¶

  初期値: `[]`

  `values`は（Maximaのオプションやスイッチではなく）バインドされたユーザー変数すべてのリストです。 リストは、`:`や`::`でバインドされたシンボルを含みます。

  もし変数の値がコマンド`kill`や, `remove`, `remvalue`で削除されたら、 変数は`values`から削除されます。

  ユーザー定義関数のリストに関しては `functions`を参照してください。

  例:

  最初、`values`はシンボル`a`, `b`, `c`を示しますが、 `d`も―それは値にバインドされていません―ユーザー関数`f`も示しません。 値は変数から削除されます。`values`は空のリストです。

      (%i1) [a:99, b::a-90, c:a-b, d, f(x):= x^2];
                                                 2
      (%o1)              [99, 9, 90, d, f(x) := x ]
      (%i2) values;
      (%o2)                       [a, b, c]
      (%i3) [kill(a), remove(b,value), remvalue(c)];
      (%o3)                   [done, done, [c]]
      (%i4) values;
      (%o4)                          []

  Evaluation · Global variables ·

### 4.3 Functions and Variables for Display ¶

オプション変数: %edispflag ¶

  デフォルト値: `false`

  `%edispflag`が`true`の時、 Maximaは `%e`の負の指数乗を商として表示します。 例えば、`%e^-x`は `1/%e^x`と表示されます。 `exptdispflag`も参照してください。

  例:

      (%i1) %e^-10;
                                     - 10
      (%o1)                        %e
      (%i2) %edispflag:true$
      (%i3) %e^-10;
                                     1
      (%o3)                         ----
                                      10
                                    %e

  Exponential and logarithm functions · Display flags and variables ·

オプション変数: absboxchar ¶

  デフォルト値: `!`

  `absboxchar`は１行より広い式の回りに絶対値記号を描くのに使われる文字です。

  例:

      (%i1) abs((x^3+1));
                                  ! 3    !
      (%o1)                       !x  + 1!

  Display flags and variables ·

関数: disp (expr_1, expr_2, …) ¶

  `display`のようですが、 等式ではなく引数の値だけが表示されます。 これは名前を持たない複雑な引数や引数の値だけに興味があって 名前には興味がない引数に役立ちます。

  `ldisp`と`print`も参照してください。

  例:

      (%i1) b[1,2]:x-x^2$
      (%i2) x:123$
      (%i3) disp(x, b[1,2], sin(1.0));
                                     123

                                        2
                                   x - x

                              .8414709848078965

      (%o3)                         done

  Display functions ·

関数: display (expr_1, expr_2, …) ¶

  左辺が未評価のexpr_iで、右辺が式の値の等式を行の中央に表示します。 この関数は、中間結果を表示するのにブロックや`for`文の中で役立ちます。 `display`の引数は、通常アトムや、添字付き変数、関数コールです。 `disp`も参照してください。

  `ldisplay`, `disp`, `ldisp`も参照してください。

  例:

      (%i1) b[1,2]:x-x^2$
      (%i2) x:123$
      (%i3) display(x, b[1,2], sin(1.0));
                                   x = 123

                                            2
                               b     = x - x
                                1, 2

                        sin(1.0) = .8414709848078965

      (%o3)                         done

  Display functions ·

オプション変数: display2d ¶

  デフォルト値: `true`

  `display2d`が`false`の時、 コンソール表示は（２次元）形式ではなく文字列（１次元）形式です。

  例:

      (%i1) x/(x^2+1);
                                     x
      (%o1)                        ------
                                    2
                                   x  + 1
      (%i2) display2d:false$
      (%i3) x/(x^2+1);
      (%o3) x/(x^2+1)

  Display flags and variables ·

オプション変数: display_format_internal ¶

  デフォルト値: `false`

  `display_format_internal`が`true`の時、 式は数学的内部表現を隠すように変換されることなく表示されます。 表示は`part`ではなく`inpart`が返すものに対応します。

  例:

      User     part       inpart
      a-b;      a - b     a + (- 1) b

                 a            - 1
      a/b;       -         a b
                 b
                             1/2
      sqrt(x);   sqrt(x)    x

                4 X        4
      X*4/3;    ---        - X
                 3         3

  Display flags and variables ·

関数: dispterms (expr) ¶

  exprをパーツ毎に一行ずつ使って表示します。 すなわち、最初にexprの演算子が表示され、 それぞれの項が別々に表示されます。 もしexprが他の方法で表示するには大きすぎるなら、 これは役に立ちます。 例えば、もし`P1`, `P2`, ...が非常に大きな式なら、 `P1 + P2 + ...`を一度に表示しようとする場合、 表示プログラムは保存の空き領域を使い尽くすかもしれません。 しかしながら、 `dispterms (P1 + P2 + ...)`は、 `P1`を表示し、その下に`P2`を表示し、という具合です。 `dispterms`を使わない時、 もし指数式が`A^B`のように表示するには広すぎるなら、 それは`expt (A, B)` (もしくは`A^^B`の場合、`ncexpt (A, B)`）のように現れます。

  Display functions ·

関数: expt (a, b) ¶
関数: ncexpt (a, b) ¶

  もし指数式が`a^b`のように表示するには広すぎるなら、 `expt (a, b)` (もしくは、`a^^b`の場合、`ncexpt (a, b)` のように現れます。

  `expt`や`ncexpt`は入力では認識されません。

オプション変数: exptdispflag ¶

  デフォルト値: `true`

  `exptdispflag`が`true`の時、 Maximaは式を商を使って負の指数の式を表示します。

  例:

      (%i1) exptdispflag:true;
      (%o1)                         true
      (%i2) 10^-x;
                                      1
      (%o2)                          ---
                                       x
                                     10
      (%i3) exptdispflag:false;
      (%o3)                         false
      (%i4) 10^-x;
                                      - x
      (%o4)                         10

  Expressions · Display flags and variables ·

関数: grind (expr) ¶
オプション変数: grind ¶

  関数`grind`は コンソールにMaximaへの入力に適した形でexprを印刷します。 `grind`はいつも`done`を返します。

  exprが関数名やマクロ名の時、 `grind`は、名前だけでなく関数やマクロ定義を出力します。

  `string`も参照してください。 それは出力を印刷する代わりに文字列を返します。 `grind`は `string`の出力より若干読みやすい方法で 式を印刷しようとします。

  変数`grind`が`true`の時、 `string`や`stringout`の出力は `grind`のそれと同じフォーマットです; そうでなければ、それらの関数の出力を特別にフォーマットしようとはしません。 変数`grind`のデフォルト値は`false`です。

  `grind`は `playback`の引数としても指定できます。 `grind`が存在する時、 `playback`は `grind`関数と同じフォーマットで入力式を印刷します。 そうでなければ、入力式を特にフォーマットしようとはしません。

  `grind`は引数を評価します。

  例:

      (%i1) aa + 1729;
      (%o1)                       aa + 1729
      (%i2) grind (%);
      aa+1729$
      (%o2)                         done
      (%i3) [aa, 1729, aa + 1729];
      (%o3)                 [aa, 1729, aa + 1729]
      (%i4) grind (%);
      [aa,1729,aa+1729]$
      (%o4)                         done
      (%i5) matrix ([aa, 17], [29, bb]);
                                 [ aa  17 ]
      (%o5)                      [        ]
                                 [ 29  bb ]
      (%i6) grind (%);
      matrix([aa,17],[29,bb])$
      (%o6)                         done
      (%i7) set (aa, 17, 29, bb);
      (%o7)                   {17, 29, aa, bb}
      (%i8) grind (%);
      {17,29,aa,bb}$
      (%o8)                         done
      (%i9) exp (aa / (bb + 17)^29);
                                      aa
                                  -----------
                                           29
                                  (bb + 17)
      (%o9)                     %e
      (%i10) grind (%);
      %e^(aa/(bb+17)^29)$
      (%o10)                        done
      (%i11) expr: expand ((aa + bb)^10);
               10           9        2   8         3   7         4   6
      (%o11) bb   + 10 aa bb  + 45 aa  bb  + 120 aa  bb  + 210 aa  bb
               5   5         6   4         7   3        8   2
       + 252 aa  bb  + 210 aa  bb  + 120 aa  bb  + 45 aa  bb
              9        10
       + 10 aa  bb + aa
      (%i12) grind (expr);
      bb^10+10*aa*bb^9+45*aa^2*bb^8+120*aa^3*bb^7+210*aa^4*bb^6
           +252*aa^5*bb^5+210*aa^6*bb^4+120*aa^7*bb^3+45*aa^8*bb^2
           +10*aa^9*bb+aa^10$
      (%o12)                        done
      (%i13) string (expr);
      (%o13) bb^10+10*aa*bb^9+45*aa^2*bb^8+120*aa^3*bb^7+210*aa^4*bb^6\
      +252*aa^5*bb^5+210*aa^6*bb^4+120*aa^7*bb^3+45*aa^8*bb^2+10*aa^9*\
      bb+aa^10
      (%i14) cholesky (A):= block ([n : length (A), L : copymatrix (A),
        p : makelist (0, i, 1, length (A))], for i thru n do
        for j : i thru n do
        (x : L[i, j], x : x - sum (L[j, k] * L[i, k], k, 1, i - 1),
        if i = j then p[i] : 1 / sqrt(x) else L[j, i] : x * p[i]),
        for i thru n do L[i, i] : 1 / p[i],
        for i thru n do for j : i + 1 thru n do L[i, j] : 0, L)$
      (%i15) grind (cholesky);
      cholesky(A):=block(
               [n:length(A),L:copymatrix(A),
                p:makelist(0,i,1,length(A))],
               for i thru n do
                   (for j from i thru n do
                        (x:L[i,j],x:x-sum(L[j,k]*L[i,k],k,1,i-1),
                         if i = j then p[i]:1/sqrt(x)
                             else L[j,i]:x*p[i])),
               for i thru n do L[i,i]:1/p[i],
               for i thru n do (for j from i+1 thru n do L[i,j]:0),L)$
      (%o15)                        done
      (%i16) string (fundef (cholesky));
      (%o16) cholesky(A):=block([n:length(A),L:copymatrix(A),p:makelis\
      t(0,i,1,length(A))],for i thru n do (for j from i thru n do (x:L\
      [i,j],x:x-sum(L[j,k]*L[i,k],k,1,i-1),if i = j then p[i]:1/sqrt(x\
      ) else L[j,i]:x*p[i])),for i thru n do L[i,i]:1/p[i],for i thru \
      n do (for j from i+1 thru n do L[i,j]:0),L)

  Display functions · Display flags and variables ·

オプション変数: ibase ¶

  デフォルト値: `10`

  `ibase`は Maximaが読む整数の基数です。

  `ibase`は2から(十進数で)36までの任意の整数を割り当てられます。 `ibase`が10よりも大きい時、 数値は十進数字0から9に加えて、 `ibase`ディジットに必要なアルファベットA, B, C, …で構成されます。 最初のディジットが0から9の時だけ文字はディジットとして解釈されます。 大文字小文字は区別されません。 許容される最も大きな基数36の数値は0から9までとAからZまでから構成されます。

  `ibase`の値がいくつでも、 整数が小数点で終了する時は基数10として解釈されます。

  `obase`も参照してください。

  例:

  `ibase` less than 10.

      (%i1) ibase : 2 $
      (%i2) obase;
      (%o2)                          10
      (%i3) 1111111111111111;
      (%o3)                         65535

  10より大きな`ibase`。 最初のディジットが0から9までの時だけ文字はディジットとして解釈されます。

      (%i1) ibase : 16 $
      (%i2) obase;
      (%o2)                          10
      (%i3) 1000;
      (%o3)                         4096
      (%i4) abcd;
      (%o4)                         abcd
      (%i5) symbolp (abcd);
      (%o5)                         true
      (%i6) 0abcd;
      (%o6)                         43981
      (%i7) symbolp (0abcd);
      (%o7)                         false

  整数が小数点で終了する時、基数10として解釈されます。

      (%i1) ibase : 36 $
      (%i2) obase;
      (%o2)                          10
      (%i3) 1234;
      (%o3)                         49360
      (%i4) 1234.;
      (%o4)                         1234

  Console interaction ·

関数: ldisp (expr_1, …, expr_n) ¶

  式expr_1, ..., expr_nをコンソールに印刷出力として表示します。 `ldisp`は 引数それぞれに中間式ラベルを割り当て、ラベルのリストを返します。

  `disp`, `display`, `ldisplay`も参照してください。

  例:

      (%i1) e: (a+b)^3;
                                         3
      (%o1)                       (b + a)
      (%i2) f: expand (e);
                           3        2      2      3
      (%o2)               b  + 3 a b  + 3 a  b + a
      (%i3) ldisp (e, f);
                                         3
      (%t3)                       (b + a)

                           3        2      2      3
      (%t4)               b  + 3 a b  + 3 a  b + a

      (%o4)                      [%t3, %t4]
      (%i4) %t3;
                                         3
      (%o4)                       (b + a)
      (%i5) %t4;
                           3        2      2      3
      (%o5)               b  + 3 a b  + 3 a  b + a

  Display functions ·

関数: ldisplay (expr_1, …, expr_n) ¶

  式expr_1, ..., expr_nをコンソールに印刷出力として表示します。 式それぞれは、 `lhs`が`ldisplay`の引数の１つで、`rhs`がその値の、 形式`lhs = rhs`の等式として表示されます。 典型的には引数それぞれは変数です。 `ldisp`は式それぞれに中間式ラベルを割り当て、ラベルのリストを返します。

  `display`, `disp`も参照してください。

  例:

      (%i1) e: (a+b)^3;
                                         3
      (%o1)                       (b + a)
      (%i2) f: expand (e);
                           3        2      2      3
      (%o2)               b  + 3 a b  + 3 a  b + a
      (%i3) ldisplay (e, f);
                                           3
      (%t3)                     e = (b + a)

                             3        2      2      3
      (%t4)             f = b  + 3 a b  + 3 a  b + a

      (%o4)                      [%t3, %t4]
      (%i4) %t3;
                                           3
      (%o4)                     e = (b + a)
      (%i5) %t4;
                             3        2      2      3
      (%o5)             f = b  + 3 a b  + 3 a  b + a

  Display functions ·

オプション変数: linel ¶

  デフォルト値: `79`

  `linel`はコンソールディスプレイの仮定された(文字単位の)幅です。 `linel`はユーザーによって任意の値に割り当てられます。 非常に小さい値や非常に大きな値は実用的ではありませんが。 エラーメッセージや`describe`の出力のように、 Maximaの組み込み関数が表示するテキストは`linel`の影響を受けません。

  Display flags and variables ·

オプション変数: lispdisp ¶

  デフォルト値: `false`

  `lispdisp`が`true`の時、 Lispシンボルはクエスチョンマーク`?`を先頭文字として表示されます。 そうでなければ、Lispシンボルは先頭文字を持ちません。

  例:

      (%i1) lispdisp: false$
      (%i2) ?foo + ?bar;
      (%o2)                       foo + bar
      (%i3) lispdisp: true$
      (%i4) ?foo + ?bar;
      (%o4)                      ?foo + ?bar

  Display flags and variables ·

オプション変数: negsumdispflag ¶

  デフォルト値: `true`

  `negsumdispflag`が`true`の時、 `x - y`は `- y + x`でなく`x - y`と表示されます。 `false`に設定すると、 ２つの式の違いに関する表示での特殊なチェックがされないようになります。 １つの応用は、例えば、`a + %i*b`と`a - %i*b`を同じ表示にすることです。

  Display flags and variables ·

オプション変数: obase ¶

  デフォルト値: `10`

  `obase`はMaximaが表示する整数の基数です。

  `obase`は2から(十進数で)36までの任意の整数を割り当てられます。 `obase`が10よりも大きい時、 数値は十進数字0から9に加えて、 必要な大文字アルファベットA, B, C, ...で構成されます。 もし先頭ディジットがそうでなければ文字なら、0ディジットが先頭に表示されます。 許容される最も大きな基数36の数値は0から9までとAからZまでから構成されます。

  `ibase`も参照してください。

  例:

      (%i1) obase : 2;
      (%o1)                          10
      (%i2) 2^8 - 1;
      (%o10)                      11111111
      (%i3) obase : 8;
      (%o3)                          10
      (%i4) 8^8 - 1;
      (%o4)                       77777777
      (%i5) obase : 16;
      (%o5)                          10
      (%i6) 16^8 - 1;
      (%o6)                       0FFFFFFFF
      (%i7) obase : 36;
      (%o7)                          10
      (%i8) 36^8 - 1;
      (%o8)                       0ZZZZZZZZ

  Display flags and variables · Console interaction ·

オプション変数: pfeformat ¶

  デフォルト値: `false`

  `pfeformat`が`true`の時、 整数の比は斜線（スラッシュ）文字で表示され、 整数分母`n`は掛け算項`1/n`として先に表示されます。

      (%i1) pfeformat: false$
      (%i2) 2^16/7^3;
                                    65536
      (%o2)                         -----
                                     343
      (%i3) (a+b)/8;
                                    b + a
      (%o3)                         -----
                                      8
      (%i4) pfeformat: true$
      (%i5) 2^16/7^3;
      (%o5)                       65536/343
      (%i6) (a+b)/8;
      (%o6)                      1/8 (b + a)

  Display flags and variables ·

オプション変数: powerdisp ¶

  デフォルト値: `false`

  `powerdisp`が`true`の時、 べきを増やす順に項を使って和が表示されます。 例えば、 多項式は切り詰められたべき級数として表示され、 最初に定数項最後に最高次項となります。

  デフォルトでは和の項はべきを減らす順に表示されます。

  Display flags and variables ·

関数: print (expr_1, …, expr_n) ¶

  expr_1, …, expr_nを１つ１つ、左から右へ評価し、 コンソールディスプレイの左端から表示します。

  `print`が返す値は最後の引数の値です。 `print`は中間式ラベルを生成しません。

  `display`, `disp`, `ldisplay`, `ldisp`も参照してください。 これらの関数は一行ずつ１つの式を表示しますが、 `print`は一行に２つ以上の式を表示しようとします。

  ファイルの中身を表示するには `printfile`を参照してください。

  例:

      (%i1) r: print ("(a+b)^3 is", expand ((a+b)^3), "log (a^10/b) is",
            radcan (log (a^10/b)))$
                  3        2      2      3
      (a+b)^3 is b  + 3 a b  + 3 a  b + a  log (a^10/b) is

                                                    10 log(a) - log(b)
      (%i2) r;
      (%o2)                  10 log(a) - log(b)
      (%i3) disp ("(a+b)^3 is", expand ((a+b)^3), "log (a^10/b) is",
            radcan (log (a^10/b)))$
                                 (a+b)^3 is

                           3        2      2      3
                          b  + 3 a b  + 3 a  b + a

                               log (a^10/b) is

                             10 log(a) - log(b)

  Display functions ·

オプション変数: sqrtdispflag ¶

  デフォルト値: `true`

  `sqrtdispflag`が`false`の時、 `sqrt`を指数1/2で表示するようにします。

  Mathematical functions · Display flags and variables ·

オプション変数: stardisp ¶

  デフォルト値: `false`

  `stardisp`が`true`の時 掛け算はオペランドの間のアスタリスク`*`で表示されます。

  Display flags and variables ·

オプション変数: ttyoff ¶

  デフォルト値: `false`

  `ttyoff`が`true`の時、 出力式は表示されません。 出力式は計算され、ラベルに割り当てられます。 `labels`を参照してください。

  エラーメッセージや`describe`の出力のように、組み込みMaxima関数によって出力されたテキストは `ttyoff`の影響を受けません。

  Display flags and variables ·