制御構造

SAD では条件判断やループといったプログラムの流れの制御も関数によって行います。

式の連結

CompoundExpression

GotoとLabel

SAD には実際にはあまり使われませんが Goto もあります。

条件式

SAD の条件演算子、論理演算子は実数値0を偽、0でない実数を真とします。0以外の実数はどれも真なのですが、実際の演算では真の場合には実数値1が返されます。論理式の結果はこのように実数ですから、他の算術式の中に混ぜても構いません。また、システムでは True, False の二つのシンボルを用意していますが、これらは単にそれぞれ実数1と0と同値です。また、条件判断を要求される場合に普通の算術式を書いてもかまいません。

条件演算子の中で、SameQ(===) と UnsameQ(<=>)以外のものは真または偽以外の値、すなわち条件式そのものをかえすことがあります。例えば、条件式 a == 1 で、もし a に何も値が割り当てられていないときは、この条件式の結果は真でも偽でもなく、じつはこの式 a == 1 そのものです。また、a に実数値以外の値が割り当てられているときも (aの値) == 1 のような式が返されます。(このようになるひとつの理由は、a == 1 の様な条件式は、いくつかの関数の中で方程式としての意味を持つからです)。これに対して、演算子 SameQ(===) と UnsameQ(<=>) は必ず真または偽の結果を返します。

AtomQ

BoundQ

ComplexQ

DirectoryQ

EvenQ

FileQ

FreeQ

MatchQ

MatrixQ

MemberQ

Negative

NonNegative

NumberQ

OddQ

Positive

RealQ

SameQ, ===

StringQ

UnsameQ, <=>

VectorQ

条件判断

If

Or, ||

Add, &&

Not, ~

Switch

Switch[expr0, form1, expr1, form2, expr2, ... ] はまず 式expr0 を評価し、その結果がパターンform1に照合すれば 式expr1 を評価し値を返します。そうでなければパターンform2, ... と照合されるまで進みます。もしどのパターンとも照合しなければ Switch の式そのものが返ります。

Which

Which[test1, value1, test2, value2, ... ] は 条件test1 を評価し真になれば式value1を評価し値を返します。そうでなければ 条件test2, ... と真になるまで進みます。もしどの条件も真でなければ Which の式そのものが返ります。

ループ

Do

While

For

Scan

Sum

Product

プログラムの中断、例外処理

Break

Continue

Return

Exit

Throw

Catch

式の評価の制御

Hold

ReleaseHold

Evaluate

Unevaluated

シンボルの設定、診断

Clear

Unset

Names

Protect

Unprotect

AutoLoad

Order


*1 itfunaloc()で定義される関数
*2 evalする前に行う

トップ   差分 バックアップ リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-11-20 (木) 18:37:26