2001-01-01から1年間の記事一覧

pairwise

数列があって、順番に2個ずつとって、その合計とか出したいとき。 pw=:1 : '2 & (u \)' MATH for the LAYMAN by Kenneth Iverson

N進法、N進数の数字

2進法とか16進法、36進法で桁の位があがったり、10進数に変換したりとか、理屈ではわかっても、テストで計算はできてもなんとなくすとんとわかった気がしません。 そんなときにも活躍するのがJ言語です。 i.20 NB.ふつうは10進法です 0 1 2 3 4 5 6 7 8 9 10…

表の作り方

J言語で試行錯誤するとどんどん縦に長くなってしまいます。 一回で覚えればそれでもかまわないのですが、テキストにしてあとで思い出すのに使いたい場合、ボックスの表にしておくと便利です。 これもいろいろ試行錯誤しているのですが、例題を文字列にして、…

@.(アトマークドット、アジェンダ)

アジェンダ@.(アトマークドット、アジェンダ)は、@.(アトマークドット、アジェンダ)の右側の引数の値に応じて左側のバッククオートで区切られた動詞の並びから選択された動詞が実行されます。他の言語でのcaseやwhenのような働きをします。右側の引数が動詞…

虚数部分の取り出し

虚数の実数部分と虚数部分の取り出しには+.(プラスドット)という動詞を使います。+.yとすると、引数yの実数部分(real part)と虚数部分(imaginary part)の2項目からなるリストを返します。たとえば、+3j5は3 5ですし、+.3は3 0です。二項動詞としては、x+.yは…

定数関数(constant function)

J言語のテキストを読んでいると一桁の数字のあとにコロンをつけて定数のように使っているのをみかけます。ボキャブラリーのページの下の方にConstant Functions _9: to 9:というのがありましたので、その翻訳です。定数関数(constant function)この関数の結…

T.(ラージティードット、テイラー近似)

テイラー近似(Taylor Approximation)は関数に作用させて、u T. nのように使用し、関数nのn-termテイラー近似を返します。 6j2 ": ^ T. 8 x=: 2 %~ i.8 1.00 1.65 2.72 4.48 7.38 12.13 19.85 32.23 6j2 ": ^ x 1.00 1.65 2.72 4.48 7.39 12.18 20.09 33.12 ^…

t:(ティーコロン、加重テイラー)

加重テイラー(weighted Taylor)は、関数に作用させてu t: kのように使い、結果は(!k)*u t. kになります。言葉を変えれば、t:(ティーコロン)によって生成される係数は引数kの階乗(factorial)によって加重された係数です。この結果、生成された係数は指数的な…

テイラー係数(Taylor coefficient)

例によってJ言語のボキャブラリーからの翻訳です。t:(ティーコロン、テイラー係数)はu t. yのように使うと、動詞uのy次のテイラー系近似(Taylor series approximation)を返します。副詞tのドメインはデリバティブD.(ラージディードット)の左側ドメインと同じ…

アサイン・テイラー

J言語ボキャブラリーのt.(ティードット)のm t.(アサイン・テイラー、テイラー数列を代入する)のところ翻訳を試みます。関数 h=: u`v t. は、関数としてはuと同等の作用であるが、h t. によって生成される動詞は v である。下記の例でのexpのように、明示的な…

外積

外積って聞きなれないので、ウィキペディアにを引いてみたら、次のように書いてありました。 物理数学における外積(がいせき) (exterior product) とは、 2つのベクトルの間に定義される二項演算およびそれによって得られる2階テンソル のことである。 な…

ブレイク

break. 制御単語break.は制御構造のfor.、while.、およびwhilst.の中で使うことができ、そのようなクローズド構造のもっとも内側の最後まで飛びます。コンティニュー(continue.)も参照のこと。 itn=: 3 : 0 NB.逆三角数 s=.0 for_j. i.2e4 do. if. s>:y do. …

アサート(assert.)

assert. T アサーション(プログラム検証)の失敗は単一文Tが要素がすべて1の配列でない場合、信号を発します。アサーションは9!:34と9!:35によって制御されるフラグに従って評価されます。例えば: cfi=: 4 : 0 " 0 NB.配列i.xにおけるy番目の順列(combinatio…

制御構造

プログラムのフローを制御する単語は明示的定義:(セミコロン)の中で使われ、実行の順序を決めます。対応する制御単語と終了分が制御構造を作ります。以下の制御単語と制御構造が使えます。 assert. T break. continue. for. T do. B end. for_xyz. T do. B e…

定数(constant)

パートIで定義、説明された数字の定数の形は、文字を使うことによってさらに詳細になります。つまり、3分の2なら2r3、π(パイ、円周率)の2倍なら2p2,π(パイ、円周率)の2000倍なら 2e3p1です。数字の定数の記述についての完全なスキームは以下の順序に従います…

APL/J言語:ディクショナリーの定義の読み方

APL/J言語:ディクショナリーの定義の読み方 ディクショナリーの項目の最初の行には行頭に単項動詞としての呼称、行末に二項動詞としての呼称が書いてあります。中央に正式な名前がありますが、正式な名前はアルファベット以外のキャラクター一文字だけのも…

APL/J言語:エラーとサスペンション

APL/J言語:エラーとサスペンション文の実行はエラーが起きると中止(サスペンド)します。エラーメッセージとコンテキスト情報が画面に出力されます。4つのブランクが構文解析が停止した場所を示します。以下に例を示しますが、サスペンションが起きるのは直…

APL/J言語:ロケール特有の名前(ローカティブ)

APL/J言語:ロケール特有の名前(ローカティブ) ローカティブabc_f_と書いた場合、ロケールfのabcのことを指します。間接ローカティブabc__xyと書いた場合、変数xyの値が名称のロケールでのabcのことを指します。旧バージョンとの連続性(コンパティビリティ)…

APL/J言語:フレットとスクリプト

APL/J言語:フレットとスクリプトホストシステムでは通常ラインフィードやキャリッジリターンキャラクターである10{a.(アスキー文字全体の中の10番目)や13{a.(同じく13番目)、またはその両方が行の切れ目のしるし(フレット)としてよく使われます。そういった…

APL/J言語:拡張整数と有理数の計算

APL/J言語:拡張整数と有理数の計算拡張整数(有効桁数を拡張したもの)は少数点を含む数字の最後にxを付すことによって入力できます。単項動詞x:を整数に作用することでも拡張整数を生成できます。たとえば、2つの要素からなるベクトル1234x 56x (または1234 …

APL/J言語:動詞の連続(トレイン)

APL/J言語:動詞の連続(トレイン)(+ */)のような特殊な連続(シークエンス)は、"通常"の構文解析ルールでは部分部分に分けることができません。このようなものはトレインと呼ばれ以下のように解釈されます。 2つもしくは3つの動詞の連続(トレイン)は動詞です…

APL/J言語:構文解析(パーシング)と実行

APL/J言語:構文解析(パーシング)と実行文(センテンス)は言語の構文解析ルールに従ってフレーズを順々に実行することにより評価されます。たとえば文10%3+2は、最初にフレーズ3+2が評価され、その結果が10を割るのに使われます。1.実行は右から左に進みます…

APL/J言語:比較演算子(comparative)

APL/J言語:比較演算子(comparative)x、yが有限の浮動小数もしくは複素数の場合、x=yは日常の同等比較と同じような働きをします。(つまりある程度の比較上の許容度を認めたうえで同じとみなします。) 結果はx-yの差が比較的ゼロに近いならば1(真)です。許容…

APL/J言語:副詞(adverb)と接続詞(conjunction)

APL/J言語:副詞(adverb)と接続詞(conjunction) 動詞(verb)と違い、副詞と接続詞は単項、二項の両方の意味を持つということはありません。副詞は動詞の後ろに付いて動詞の動きを変化させますので、左側の引数だけという意味で常に単項(monadic)です。接続詞…

動詞(verb)

単項動詞と二項動詞。 動詞は2種類の定義があります。一つは引数が一つだけの単項の場合(monadic)で、もう一つは引数が二つの2項の場合(dyadic)です。もし動詞の左側に妥当な引数が供給されると、二項動詞の定義が使われます。妥当な引数とは、それ自身が接…

APL/J言語:名詞(noun)

APL/J言語:名詞(noun) 名詞(noun)は3つの違ったやりかたで分類されます。 1.数字(ニューメリック)、リテラル、シンボル 2.オープンまたはボックス 3.いろんな次元(ランク)での配列 配列の要素となるアトムはひとつのクラス(数字、リテラル、シンボル、ボッ…

APL/J言語:文法

APL/J言語:文法 (cf.20010329) 次の例はJ言語における文の6つの部分(名詞、動詞、副詞、接続詞、連結詞、句読点)をわかりやすく示しています。The following sentences illustrate the six parts of speech: fahrenheit =: 50 (fahrenheit - 32) * 5%9 10 p…

APL/J言語:アルファベットと単語

APL/J言語:アルファベットと単語 J言語で用いられるアルファベットは標準アスキー文字であり、数字と英語のアルファベットとアンダーライン(名前と数字に用いられる)と、クオート(シングルクオート)とグラフィックと呼ばれるその他(スペースを含む)からなる…

APL/J言語:ディクショナリー

APL/J言語:ディクショナリー J言語は形式型命令型プログラミング言語(formal imperative language)であるAPLの方言です。命令型プログラミング言語なので、J言語の文はインストラクションとも呼ばれ、結果を生じるために実行することができます。形式言語(f…

APL/J言語:!.(エクスクラメーションドット、フィット接続詞)

APL/J言語:!.(エクスクラメーションドット、フィット接続詞) 接続詞!.(エクスクラメーションドット、フィット、カスタマイズ)はある種の動詞について、定義された形で動詞の動きを変化させます。たとえば、=!.tは=(イコール)のトレランスをtに変更します。^…