[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

22. 命令行

22.1 命令行について  
22.2 命令行に関する諸定義  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

22.1 命令行について

関数: %TH (i)
i回前の計算結果である。つまり、次に計算される式の結果がD(j)であればD(j-i)に なる。これはBATCHファイルの中やD式の集合を参照する時に便利である。例えば、 SUMが0に初期化されていれば、FOR I:1 THRU 10 DO SUM:SUM+%TH(I)で10個のD式の 総和がSUMに設定される。

演算子: "'"
- '(単引用符)は評価を防止する。つまり、'(F(X))で式F(X)を評価しない事を意味 する。'F(x)は[X]にFを作用させて、その名詞型で返す。

演算子: """
- "(二つの単引用符)は特殊な評価を行う。例えば、"c4;でC4行を再評価する。 "(F(X))は特別の時間をかけて式F(X)を評価する。"F(X)はFを[X]に作用させて 動詞型で返す。

 
(*訳者注:

SIN(%pi/4)の名詞型-> SQRT(2)/2,
SIN(%pi/4)の動詞型-> 0.70710678118655
この様に名詞型では或程度簡易化されるものの一部の評価が残されている。これに
対し、動詞型では徹底的に評価が行われる。
*)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

22.2 命令行に関する諸定義

関数: ALIAS (newname1, oldname1, newname2, oldname2, ...)
(利用者、又はシステム)関数、変数、配列等に対して別名を与える。任意の偶数個の 引数を用いる。

関数: DEBUG ()
LISPDEBUGMODE(); DEBUGPRINTMODE(); とDEBUG(); はシステムプログラマーが使う 虫取り機能を利用者が使える様にする。これらのツールは強力であるが、幾つかの 取り決めが通常のMACSYMAの階層のものと異っていおり、それらの利用はとても 直感的とさえ感じられるだろう[遅い端末で表示が冗長であれば、これを制御する スイッチがある]。これらの命令はMACSYMAのコードが上手く動作する様に虫取りし なければならない利用者向けに設計されている。MACDOC;TRDEBG USAGEでより多くの 情報が得られる。より多くのヘルプが必要ならGJCを参照せよ。

変数: DEBUGMODE
デフォルト値:[FALSE] - TRUEの場合、MACSYMAエラーが生じた時とFALSEで中断 モードに入った時は何時でもMACSYMA break loopに入る。もし、ALLが設定されて いれば、利用者はその時点で実行中の関数のリストに対し、BACKTRACEを調べる事が 出来る。

関数: DEBUGPRINTMODE ()
LISPDEBUGMODE(); DEBUGPRINTMODE();とDEBUG();はシステムプログラマーが利用する 虫取り機能を利用者に使える様にする。これらのツールは強力で、幾つかの取り決め は通常のMACSYMAの階層とは異っているが、それらの利用はとても直感的と感じられる かもしれない[遅い端末では表示が冗長かもしれず、これを制御するスイッチがある]。 これらの命令はMACSYMAのコードを上手く動作する様に虫取りをしなければならない 利用者向けに設計されている。より多くの情報はMACDOC;TRDEBG USAGEを見よ。 より多くのヘルプはGJCを参照せよ。

関数: EV (exp, arg1, ..., argn)
MACSYMAの最も強力で高機能の命令の一つである。argiで指定した環境で式expを評価 する。これは次の手順で実行される;

 
                     例

(C1) SIN(X)+COS(Y)+(W+1)**2+'DIFF(SIN(W),W);
                        d                 2
(D1)  COS(Y) + SIN(X) + -- SIN(W) + (W + 1)
                        dW
(C2) EV(%,SIN,EXPAND,DIFF,X=2,Y=1);
                    2
(D2)      COS(W) + W  + 2 W + COS(1) + 1.90929742

別のトップレベルの構文はEVに対して提供され、EV()無しにその引数を何処でも入力 しても良い。つまり、次の様に簡単に書いて良い。
 
exp, arg1, ...,argn.

これは他の式、つまり、関数やBLOCK等での成分として許容されていない。

 
(C4) X+Y,X:A+Y,Y:2;
(D4)                Y + A + 2
(並行した束縛の過程に注意せよ)
(C5) 2*X-3*Y=3$
(C6) -3*X+2*Y=-4$
(C7) SOLVE([D5,D6]);
SOLUTION
                                1
(E7)                     Y =  - -
                                5
                          6
(E8)                  X = -
                          5
(D8)               [E7, E8]
(C9) D6,D8;
(D9)               - 4 =  - 4
(C10) X+1/X > GAMMA(1/2);
                    1
(D10)           X + - > SQRT(%PI)
                    X
(C11) %,NUMER,X=1/2;
(D11)            2.5 > 1.7724539
(C12) %,PRED;
(D12)                  TRUE


変数: EVFLAG
デフォルト値:[] - EV関数が認知しているもののリスト。例えば、EV(%,numer);でEV を呼出し、それが指定されていればEVが実行時、項目にTRUEが設定される。evflagの 初期値は、
 
FLOAT, PRED, SIMP, NUMER, DETOUT, EXPONENTIALIZE, DEMOIVRE,
KEEPFLOAT, LISTARITH, TRIGEXPAND, SIMPSUM, ALGEBRAIC,
RATALGDENOM, FACTORFLAG, %EMODE, LOGARC, LOGNUMER,
RADEXPAND, RATSIMPEXPONS, RATMX, RATFAC, INFEVAL, %ENUMER,
PROGRAMMODE, LOGNEGINT, LOGABS, LETRAT, HALFANGLES,
EXPTISOLATE, ISOLATE_WRT_TIMES, SUMEXPAND, CAUCHYSUM,
NUMER_PBRANCH, M1PBRANCH, DOTSCRULESとLOGEXPAND
である。

変数: EVFUN
- 関数のリストであり、それらの名前が指定されていれば、EV関数が適用される。 EVFUNの初期値はFACTOR,TRIGEXPAND,TRIGREDUCE,BFLOAT, RATSIMP,RATEXPAND, RADCAN,LOGCONTRACT,RECTFORMとPOLARFORMである。

特殊記号: INFEVAL
"無限評価"モードに入る。EVは変化が止るまで繰り返し式を評価する。変数、ここでは Xとするが、このモードで評価されるのを防ぐ為に、単にEVに対する引数としてX='Xを 含める。勿論、EV(X,X=X+1,INFEVAL);の様な式は無限ループを生成する。EVALUATORに 注意せよ。

関数: KILL (arg1, arg2, ...)
MACSYMAシステムからその引数を消去する。

KILL(VALUES)やKILL(variabkes)で同じ式を指定するラベルが消去される迄、その占有 された保存領域を解放しない事に注意せよ。それ故、もしも、大きな式がC7行のXに 対して割り当てられていた場合、占有された保存領域を解放する為には、KILL(X)と KILL(D7)も実行しなければならない。

KILL(ALLBUT(name1,...,namek)はKILL(ALL)を、その名前をALLBUTで指定したものを 除外して実行する(注意:nameiは、U,V,F,Gの様な名前を意味し、FUNCTIONSの様な infolistでは無い)。KILLは与えられた引数から全ての属性を削除し、それ故、 KILL(VALUES)はVALUESリストの全ての項目に関連する全ての属性を削除するが、 REMOVE関数群(REMVALUE,REMFUNCTION,REMARRAY,REMRULE)は指定した属性を削除する。 又、後者はリストの名前か指定した引数が存在しなければFALSEを出力するが、 KILLは指定した項目がたとえ存在しなくても常に値"DONE"である。

式の削除は、あまりにも多くのFASLファイルが読み込まれたり、メモリの割当ての 水準が高くなり過ぎたかの何れかの理由により、"NO CORE -FASLOAD"と云う文句が MCで出る問題への何等の対処方法にならない事に注意せよ。この両方の場合、 これらの領域を減ずる為に削除すべきものが無い。式の削除は単に幾つかの領域を 空にするだけで、より小さくする事では無い。

関数: LABELS (char)
文字C,DにEを引数として取り、全てのC-ラベル、D-ラベルやE-ラベルのリストを各々 生成する、もし、SOLVEで沢山のE-ラベルを生成した場合、

 
FIRST(REST(LABELS(C)))

とすれば、最新のC-ラベルが何であるかが判る。

LABELSは引数として任意の記号名を取り、そうして、もしINCHAR,OUTCHARやLINECHAR を再設定すると、ラベルのリストを返すが、ラベルの最初の文字はLABELSに与えた 引数の最初の文字に適合する。変数のLABELSはデフォルト値:[]のC,DとE行の値が設定 されたもののリストである。

変数: LASTTIME
- 最近入力した式の計算時間をミリ秒単位で"time"と"gctime"のリストとして表示し たもの。

変数: LINENUM
- 最近入力した式の行番号。

変数: MYOPTIONS
デフォルト値:[] - 利用者によって以前再設定された全てのオプション(それらの 初期値が再設定されようが、されていまいが)。

変数: NOLABELS
デフォルト値:[FALSE] - TRUEであれば、関数の処理で生成されたE行を除いてラベル への束縛を行わない。これは"BATCH"モードで空き領域を増す為にKILL(LABELS)を 実行しなくて済み、とても便利である。

変数: OPTIONSET
デフォルト値:[FALSE] - TRUEであれば、MACSYMAはオプションが再設定された時、 何時でもメッセージを表示する。これは利用者があるオプションの綴りが不確かな 場合と割り当てた値が本当にオプションの値となっているかを確認したい時に便利 である。

関数: PLAYBACK (arg)
入力と出力行の"後戻し(play-back)"を行う。arg=n(整数)であれば、最近のn個の式 (Ci,DiとEiを各々1で数える)が"後戻し"され、argが省略されていれば、全ての行と なる。arg=INPUTであれば、入力行が"後戻し"され、arg=[m,n]であれば、mからn迄の 間に含まれる全ての行が後戻しされる。もし、m=nであれば、[m]だけで引数としては 十分である。Arg=SLOWであれば、デモ(その対極としては"速い"BATCH)の様に遅く 後戻しを実行する。これは有用な式を取り出す目的で、SAVEやSTRINGOUTと連携して 第二の保存ファイルを生成する時に便利である、

もし、arg=TIMEであれば、計算時間が式と同様に表示される。もし、arg=GCTIMEか TOTALTIMEであれば、SHOWTIME:ALL;を用いたのと同じ様に計算時間の完全な詳細が 表示される。arg=STRINGであれば、全ての入力行を文字列として返し(STRING関数を 見よ)、それらを表示すると云うよりは後戻しをする。arg=GRINDであれば、"grind" モードに(入力行の進行に対して)切り替わる(GRINDを見よ)。 PLAYBACK([5,10],20,TIME,SLOW)の中のオプションの様に任意の数を含んで良い。

関数: PRINTPROPS (a, i)
原子aに付随する添字iの属性を表示する。aは原子のリストか原子であり、ALLは与え られた属性を持つ全ての原子の場合に用いられる。 例えば、PRINTPROPS([F,G],ATVALUE)とする。PRINTPROPSは、ATVALUE、ATOMGRAD、 GRADEFとMATCHDECLEAREの様に表示される事の無い属性向けである。

変数: PROMPT
デフォルト値:[_]はDEMO関数のプロンプト記号で、PLAYBACK(SLOW) modeと (MACSYMA-BREAK)がある。

関数: QUIT ()
その時点のMACSYMAを殺すが、利用者の他のジョブには影響を与えない;DCLに抜けて MACSYMAのプロセスを止める事と同値である。MACSYMAのトップレベルで Control-C Control-Gと打込む事で"停止"させても良い;ここでControl-CはNILの 中断プロンプトを返し、中断プロンプトでXを入力すれば途中で止めた本筋の計算を 破棄せずにMACSYMA-BREAK内で開始した計算の停止が行える。

関数: REMFUNCTION (f1, f2, ...)
利用者の定義関数f1,f2,...をMACSYMAから削除する。ALLが唯一の引数であれば全ての 関数が削除される。

関数: RESET ()
全てのMACSYMAのオプションをデフォルト値に設定する(LINELの様な割当によってのみ 変更可能な端末の機能はMACSYMAの計算機能として考えられていない為、これに含まれ ない事に注意して頂きたい)。

関数: RESTORE (file-specification)
以前のMACSYMAの処理で、SAVEやSTORE関数によってファイル化された全てのものを、 それらを中核(core)に持ち込まずにfile-specificationで与えられたファイルから 再初期化する。

変数: SHOWTIME
デフォルト値:[FALSE] - TRUEであれば、出力式と共に計算時間の自動表示を行う。 SHOWTIME:ALLとすれば、CPU時間も含めてMACSYMAは計算処理でのメモリのゴミ集め(gc) に費した時間(零でなければ)も表示する。この時間は勿論"time="の時間表示に含まれ ている("time="には計算時間のみが含まれ、中間表示時間や中核に含まれないファイル を読込む時間は含まれておらず、gcへの"反応性"に分けて認識する事が難しい為に表示 されるgctimeは計算の実行中に費やした全てのgctimeを含んでいる。それ故、稀に "time="よりも大きくなるかもしれない事に注意しなければならない)。

関数: SSTATUS (feature,package)
- 状態を設定する事(SET STATUS)を意味する。STATUS(FEATURE,HACK_PACKAGE)が TRUEを返す様にSSTATUS(FEATURE,HACK_PACKAGE)を用いる事が出来る。これは パッケージを書く場合、それらが読み込まれた機能の記録を保つのに便利である。 SSTATUS(FEATURE,HACK_PACKAGE)はその名の通り状態を設定する事を意味する。 SSTATUS(FEATURE,HACK_PACKAGE)がTRUEを返す様にSTATUS(FEATURE,HACK_PACKAGE)を 用いる。これはパッケージを書く際に、それらが読み込んだ機能の履歴を保存する のに便利である

関数: TOBREAK ()
一旦、TOPLEVEL;を入力して抜けたMACSYMAの中断に再び入る。 TOPBREAKにあらゆる引数が与えられた時には中断は終了するが、それはTOBREAK()を 入力して直ちにEXIT;を続けるのと同じである。

関数: TOPLEVEL ()
中断(break)の間、TOPLEVEL;を入力しても良い。こうするとMACSYMAのトップレベルに 再帰的に入る。ラベルは通常の様に束縛される。中断された計算が保持されている事 を除いて、全てが以前のトップレベルと同一である。関数TOBREAK()でTOPLEVEL;と 入力する事で抜けた中断(break)に再び入る。TOPBREAKにあらゆる引数が与えられた 時、中断を終了する。これはTOBREAK()を入力して直ちにEXIT;を続けるのと同じで ある。

関数: TO_LISP ()
MACSYMAの下層にあるLISPに入る。これはcotrol-uparrow(↑)がこの機能の為に使え ないシステムでは便利である。

 
(* 訳者注:

(C1) to_lisp();

Type (run) to restart

MAXIMA[1]> (+ 1 2);
3
MAXIMA[2]> (setq a 'neko) 
NEKO
MAXIMA[3]> a
NEKO
MAXIMA[4]> (run)
Maxima 5.6 日 7月 8 14:00:42 JST 2001 (with enhancements by W. Schelter).
Licensed under the GNU Public License (see file COPYING)
(C2) 

この様に、to_lisp();を実行するとlispに入り、(run)でMaximaに戻る。
尚、:qで戻らないので注意する。

MAXIMA[5]> :q
:Q
MAXIMA[6]> (run)
Maxima 5.6 日 7月 8 14:00:42 JST 2001 (with enhancements by W. Schelter).
Licensed under the GNU Public License (see file COPYING)
(C3) 

*)

変数: TTYINTFUN
デフォルト値:[FALSE] - 利用者中断文字が入力された時に動作する関数を制御する。 この機能を利用する為には、TTYINTFUN(デフォルト値はFALSEで、この機能が使われて いない事を意味する)を引数を持たない関数として設定する。すると、(例えば)^U (control-U)が入力された時に、この関数が動作する。例えば、FOR文のループで増分が IでFOR文を動かしている間にIの値を簡単に確認したければ次の様に行なえる:

 
TTYINTFUN:PRINTI$ PRINTI():=PRINT(I)$ 

すると、(例えば)^Uを打ち込めば何時でも検査が行える。

変数: TTYINTNUM
デフォルト値:[21] (Control+U(^U)のアスキーコード値、Uはアルファベットの21番目 の文字)。これはどの文字が利用者停止文字になるかを制御する。^Uは記憶を補助する 変数(mnemoric value)として選ばれている。殆どの利用者は^Uを何か他の事で利用し ている訳でも無い限り、TTYINTNUMを再設定してはならない。

変数: VALUES
デフォルト値:[] - 全ての束縛原子、つまり、利用者変数で、MACSYMAのオプション やスイッチでは無いもの(:,::,や関数的な束縛で設定されたもの)である。


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Hiroshi Yokota on September, 16 2002 using texi2html