演算子インデックス
挿入演算子¶
挿入演算子は優先順位順に並んでいます。優先順位は数で表され、小さな数のものが優先順位は高くなっています。優先順位が同じであれば、左から右へ演算が行われます。
:(20) 自身の定義にアクセスする.(25) あらかじめ定義されたデータフィールドにアクセスする°(25) 度数法を弧度法に変換する_(50) リスト内の要素にアクセスする^(50) べき乗*(100) 乗法 (ベクトル、行列も含む)/(100) 除法(ベクトル、行列をスカラーで割る場合も含む)+(200) 加法 (ベクトル、行列も含む)-(200) 減法 (ベクトル、行列も含む)!(200) 論理否定==(300) 相等>(300) より大きい<(300) より小さい>=(300) 以上<=(300) 以下!=(300) 等しくない~=(300) ほぼ等しい~<(300) ほぼ小さい~>(300) ほぼ大きい~>=(300) ほぼ以上である~<=(300) ほぼ以下である=:=(300) equals after evaluation&(350) 論理積%(350) 論理和!=(350) 等しくない~!=(350) ほぼ等しくない..(350) aからbまでの範囲の数のリスト++(370) リストの連結--(370) リストの差~~(370) 2つのリストの共通要素:>(370) リストの後方に要素を追加する<:(370) リストの前方に要素を追加する=(400) 変数への代入:=(400) 関数の定義:=_(400) 定義の消去->(400) 修飾子の宣言,(500) リストと関数の区切り;(500) 命令文の区切り
定義済み関数¶
定義済み関数と、その引数の数が書かれています。関数はいくつかのカテゴリーに分類されています。複数のカテゴリーに含まれている関数もあります。リンクのないものはまだドキュメントがありません。
制御¶
if(2) もし〜ならば〜if(3) もし〜ならば〜、そうでなければ〜trigger(2) 条件を満たせば実行while(2) While 繰り返しrepeat(2) # を実行変数として繰り返しrepeat(3) 実行変数を指定して繰り返しforall(2) # を実行変数としてすべての要素に対して繰り返しforall(3) 実行変数を指定してforall繰り返しeval(1) 式の強制的な評価
変数の管理¶
clear(0) すべての変数をクリアclear(1) 特定の変数をクリアするkeys(1) オブジェクトまたは変数に関連したローカルキーのリストを返すcreatevar(1) 局所変数の作成removevar(1) 局所変数の削除regional局所変数を作る。引数の数は任意localいくつかの局所変数を作るreleaseいくつかの局所変数の削除
出力¶
print(1) 値を印字するprintln(0) 改行println(1) 印字して改行するclearconsole(0) コンソールをクリアerr(1) デバッグ用の印字assert(2) エラーチェックの印字format(2) 数を整形するmessage(1) ステータス行にメッセージを表示する
算術関数¶
sqrt(1) 平方根exp(1) 指数関数log(1) 自然対数sin(1) 正弦cos(1) 余弦tan(1) 正接arcsin(1) 正弦の逆関数arccos(1) 余弦の逆関数arctan(1) 正接の逆関数arctan2(2) ベクトル (x,y) のなす角add(2) 和sub(2) 差mult(2) 積div(2) 商mod(2) 剰余pow(2) べき乗abs(1) 絶対値round(1) 四捨五入floor(1) その数以下の最大の整数ceil(1) その数以上の最小の整数re(1) 複素数の実部im(1) 複素数の虚部conjugate(1) 共役複素数random(1) 0 から 1 までの一様乱数randominteger(1) 整数の一様乱数random(0) 0から1までの実数の一様乱数randombool(0) ブール値の乱数 true または falserandomnormal(0) (0,1)正規乱数seedrandom(1) 乱数の種(seed)の設定
ブール関数¶
型の判定¶
isinteger(1) 整数かisreal(1) 実数かiscomplex(1) 複素数かiseven(1) 偶数かisodd(1) 奇数かislist(1) リストかismatrix(1) 行列かisnumbervector(1) 数ベクトルかisnumbermatrix(1) 数行列かisstring(1) 文字列かisgeometric(1) 幾何学要素かisselected(1) 選択されているかispoint(1) 幾何の点かisline(1) 直線かiscircle(1) 円かisconic(1) 円錐曲線かismass(1) 質点かissun(1) 恒星かisspringバネかisundefined(1) 未定義要素か
文字関数¶
text(1) 文字列への変換parse(1) CindyScript の式として文字列を解析substring(3) 文字列の抜きだしreplace(3) 文字列の置換replace(2) 文字列の置換tokenize(2) 文字列の分解indexof(2) 文字列の検索indexof(3) 文字列の検索length(1) 文字列の長さformat(2) 数を整形するguess(1) 文字列の解析sortリストの並べ替えfontfamilies(0) 使用可能なフォントのリストを得るunicode(1), (2) ユニコードを文字列に変換するcandisplay(1) 文字列が現在のシステムフォントで表示できるかどうかテストする
微積分¶
d(2) 関数の微分tangent(2) 接線を計算するguess(1) 浮動小数点数から記号的意味を推測するpslq(1)guessguess と同じroots(1) n次方程式の解を与える
基本的なリスト処理¶
take(2) リストの要素へのアクセスlength(1) リストの長さcontains(2) 内容のテストappend(2) 要素の後方追加prepend(2) 要素の前方追加concat(2) リストの連結common(2) リストの共通部分remove(2) リストからの要素の削除nil(0) 空リスト
リストの要素の走査¶
forall(2) # を実行変数として全要素を走査するforall(3) 実行変数を指定して全要素を走査するapply(2) # を実行変数として全要素に式を適用するapply(3) 実行変数を指定して全要素に式を適用するselect(2) # を実行変数として条件を満たす要素を選び出すselect(3) 実行変数を指定して条件を満たす要素を選び出す)
高度なリスト処理¶
pairs(1) リストの要素のすべてのペアを作るtriples(1) リストの要素のすべての3つの組を作るdirectproduct(2) 2つのリストの直積consecutive(1) リストの連続する要素のペアからなるチェーンを作るcycle(1) 連続する2つずつの要素のペアで輪を作るreverse(1) リストの要素を逆順にするset(1) リストの要素を単一化した集合を作るsort(1) リストの要素を並べ替えるsort(2) リストの各要素を評価式によって並べ替えるflatten(1) ネストされたリストの平坦化
幾何学要素のリスト¶
allelements(0) すべての要素のリストを作るallpoints(0) すべての点のリストを作るalllines(0) すべての直線のリストを作るallsegments(0) すべての線分のリストを作るallcircles(0) すべての円のリストを作るallconics(0) すべての円錐曲線のリストを作るallmasses(0) すべての質点のリストを作るallsprings(0) すべてのバネのリストを作る
リストの算術演算¶
sum(1) 要素の総和を求めるsum(2) 実行変数を # として各要素に式を実行した結果の総和を求めるsum(3) 実行変数を指定して各要素に式を実行した結果の総和を求めるproduct(1) 要素をすべて掛け合わせるproduct(2) 実行変数を # として各要素に式を適用し、結果をすべて掛け合わせるproduct(3) 実行変数を指定して各要素に式を適用し、結果をすべて掛け合わせるmin(1) 要素の最小値を求めるmin(2) 実行変数を # として各要素に式を適用し、その最小値を求めるmin(3) 実行変数を指定して各要素に式を適用し、その最小値を求めるmax(1) 要素の最大値を求めるmax(2) 実行変数を # として各要素に式を適用し、その最大値を求めるmax(3) 実行変数を指定して各要素に式を適用し、その最大値を求める
ベクトルと行列の操作¶
zerovector(1) 零ベクトルを生成するzeromatrix(2) 零行列を作るrowmatrix(1) 行ベクトルから行列への変換columnmatrix(1) 列ベクトルから行列への変換matrixrowcolumn(1) 行と列の数を2つの数の要素からなるリストとして返すrow(2) 行をベクトルとして返すcolumn(2) 列をベクトルとして返すsubmatrix(2) 小行列を作るtranspose(1) 転置行列を返すdist(2) ベクトルの距離を返すdet(1) 正方行列の行列式を返すhermiteanproduct2つのベクトルのエルミート内積を返すinverse(1) 正方行列の逆行列を返すadj(1) 正方行列の余因子行列を返すeigenvalues(1) 正方行列の固有値を返すeigenvectors(1) 正方行列の固有ベクトルを返すlinearsolve(2) 一次方程式の解を返すconvexhull3d(1) 3次元の凸多面体を作る。
描画関数¶
repaint(0) 面を塗り直すdraw(1) 点を描くdraw(2) 線分を描くdrawpoly(1) 多角形を描くdrawpolygon(1)drawpolyと同じfillpoly(1) 中を塗った多角形を描くfillpolygon(1)fillpolyと同じdrawcircle(2) 中心と半径を与えて円を描くfillcircle(2) 中を塗った円を描くdrawall(1) リストのすべての要素を描画するconnect(1) リストの点をつなぐdrawtext(2) 文字列を表示するdrawtable(2) 表を描くrepaint(0) 画面の再描画repaint(1) 画面の再描画
描画の外観を設定する¶
pointsize(1) 点の大きさlinesize(1) 線の太さtextsize(1) 文字の大きさpointcolor(1) 点の色linecolor(1) 線の色textcolor(1) 文字の色color(1) すべての色alpha(1) すべての不透明度のアルファ値gsave(0) 色、アルファ値、幅、変換をスタックに入れるgrestore(0) 色、アルファ値、幅、変換をスタックから出すgreset(0) 色、アルファ値、幅、変換のスタックを空にする
色の関数¶
red(1) 赤のRGBベクトルを返すgreen(1) 緑のRGBベクトルを返すblue(1) 青のRGBベクトルを返すgrey(1) 灰色のRGBベクトルを返すgray(1) grey と同じhue(1) 色相のRGBベクトルを返す
関数プロット¶
plot(1) 実行変数を # として関数をプロットするplot(2) 実行変数を指定して関数をプロットするfillplot(1) 積分のようにハイライトさせてプロットするfillplot(2) 2つの関数の差をハイライトさせてプロットするcolorplot(3) 関数の値によって色をプロットするdrawfield(1) ベクトル場を描画するdrawfieldcomplex(1) 複素ベクトル場を描画するdrawforces(1) 力の場を表示するdrawcurves(2) 物理のオシログラフを描く
画像の操作¶
drawimage(2) 1点を指定して画像を表示するdrawimage(3) 2点を指定して画像を表示するdrawimage(4) 3点を指定して画像を表示するdrawimage(5) 4点を指定して画像を表示するmapimage(2) 画像を変形するimagesize(1) 画像の大きさを取得するimagergb(3) 画素の色情報を取得するcreateimage(3) カスタム画像を作るclearimage(1) 画像の内容を消去するremoveimage(1) 画像を削除するcanvas(3) 参照点を1つ指定してキャンバスに描くcanvas(4) 参照点を2つ指定してキャンバスに描くcanvas(5) 参照点を3つ指定してキャンバスに描く
シェイプ¶
circle(2) 円形のシェイプを作るpolygon(1) 多角形シェイプを作るhalfplane(2) 半平面シェイプを作るscreen() スクリーンのシェイプを作るfill(1) シェイプを塗りつぶすdraw(1) シェイプの輪郭線を描くclip(1) シェイプのクリップパスの設定
幾何変換¶
translate(1) 座標系全体を平行移動rotate(1) 座標系全体を回転scale(1) 座標系全体を拡大・縮小setbasis(1) 座標系全体の基底を変換setbasis(2) 座標系全体の基底を相似変換にするsetbasis(3) 座標系全体の基底をアフィン変換にするsetbasis(4) 座標系全体の基底を射影変換にする
幾何関数¶
moveto(2) 点の位置を変えるmeet(2) 直線の交点を求めるjoin(2) 2点を結ぶperp(1) 垂直な2次元ベクトルを返すperp(2) 点を通り直線に垂直な直線を求めるperpendicular(2) 点を通り直線に垂直な直線を求めるpara(2) 点を通り直線に平行な直線を求めるparallel(2) 点を通り直線に平行な直線を求めるcross(2) 2つの3次元ベクトルの外積を返すdist(2) 2点間の距離を返すarea(3) 3点で与えられた三角形の面積を返すdet(3) 3 × 3 行列の行列式を計算するcrossratio(4) 4点の複比を計算するcomplex(1) xy座標を複素数に変換するgauss(1) 複素数を点の座標に変換するpoint(1) 数ベクトルを点として位置づけるline(1) 数ベクトルを直線として位置づけるgeotype(1) ベクトルの幾何学的意味を返すmap(2) 平行移動を表す行列を返すmap(4) 相似変換を表す行列を返すmap(6) アフィン変換を表す行列を返すmap(8) 射影変換を表す行列を返すpointreflect(1) 点に関する対称点を求める行列を返すlinereflect(1) 直線に関して対称な点をを求める行列を返すincidences(1) 幾何要素にインシデントである要素のリストを返すlocusdata(1) 軌跡上の点の座標のリストを返す
インスペクタ¶
要素の作成と消去¶
createpoint(2) 位置とラベルを指定して点を加える ( 2.1版から)create(3) create a an arbitrary geometric elementremoveelement(1)幾何の要素をそれに従属する点とともに消去する ( 2.1版から)algorithm(1) 幾何要素の作図手順を得るinputs(1) 幾何要素を定義するために必要な要素のリストを得るelement(1) 引数の名前の幾何要素へのハンドルを得る
MIDI¶
playtone(1) MIDIの単音を鳴らすstoptone(1) 音を止めるplayfrequency(1) 特定の周波数で鳴らすplaymelody(1) メロディを鳴らすmidiaddtrack(1) シーケンサにトラックを追加するmidistart(0) シーケンサの開始midistop(0) シーケンサの停止midispeed(1) シーケンサの速度設定midispeed(0) シーケンサの速度を問い合わせるmidiposition(1) シーケンサの位置を設定するmidiposition(0) シーケンサの開始位置を得るinstrument(1) 楽器を選ぶinstrumentnames(0) 利用できる楽器のリストを得るmidichannel(1) チャンネルを設定するmidivolume(1) チャンネルの音量を設定するmidicontrol(2) チャンネルのコントローラを設定する
サンプルーオーディオ¶
playsin(1) 特定の周波数の音を鳴らすplayfunction(1) 数式で定義した音を鳴らすplaywave(1) オーディオデータのリストを再生するstopsound(0) すべての音の再生を停止する
マウスとキーボードからの入力¶
mover(0), 最後に動かされた点を返すmouse(0) マウスボタンが押されたときのマウスの位置を返すelementsatmouse(0) マウスカーソルの近くにある要素のリストを返すkey(0) キーボードで打たれた文字列を返すiskeydown(1) あるキーが押されたかどうか問い合わせるkeydownlist(0) 押されたキーのリストを返すamsdata(0) 重力センサからデータを得るcalibratedamsdata(0) 調整されたAMSデータを取得する
時間¶
resetclock(0) 内部時計のリセットseconds(0) リセット後の経過時間simulationtime(0) シミュレーションの進行に同期した実行用時計のハンドルを返すtime(0) 現在の時刻date(0) 現在の日付wait(1) ミリ秒単位で指定された時間、実行を止めて待つ
ファイル入出力¶
setdirectory(1) ファイルのディレクトリを設定するload(1) データの読み込みimport(1) プログラムコードの読み込みopenfile(1) ファイルを開いてハンドルを返すclosefile(1) ファイルを閉じるprint(2) ファイルに書き出す。改行なし。println(2) ファイルに書き出す。改行あり。
ネットワーク¶
openurl(1) Webページをブラウザで開く
物理シミュレーション¶
simulation(0) シミュレーションへのハンドル提供force(1) 力の探索粒子を設定するaddforce(2) 力を存在する質点に適用するsetforce(2) 力を存在する質点に設定する
アニメーション¶
playanimation(0) アニメーションを開始するpauseanimation(0) アニメーションをいったん停止するstopanimation(0) アニメーションを終わる
特別な演算子(実験段階のため説明なし)¶
次の演算子は、自己責任で使ってください
freevariables(1)java(1)curview(0)curkernel(0)curgraphalgorithm(0)attribute(2) 属性を読むattribute(3) ユーザー属性を設定するinspectinfo(2) 属性情報createmass(3) 名前と位置、速度を持った質点を作る(現在未サポート)