APL/J言語 の検索結果:
単語のリストを覚えるのは効率的な言語の学び方ではありません。よりよい方法を使うべきです。 A)あなたに話させてくれるネイティブスピーカーと会話する。 B)その言語で書かれていて読んでおもしろいものを読む。 C)辞書の使い方と文法を学び、先生なしで独立できるようにする。 D)興味ある主題で自分で書いてみる。 E)単語の構造に注目し、知っている単語から知らない単語の意味を類推できるようにする。プログラムはテレ(遠くの)グラムと関係あり、テレグラムはテレフォンと関係ある。小さい単語…
接続詞の@(アトマーク、アトップ接続詞)は二つの動詞からひとつの動詞を作りますが、ひとつ目を実行してからふたつ目を実行するのと同じ結果になります。次の例を見て下さい。 TriplePowersOf2=: (3&*)@(2&^) TriplePowersOf2 0 1 2 3 4 3 6 12 24 48 CubeOfDiff=: (^&3)@- 3 4 5 6 CubeOfDiff 6 5 4 3 _27 _1 1 27 f=: ^@- NB.右側の関数が可能ならば二項動詞と…
ボンド接続詞(コンジャンクション) ^(キャレット、べき乗)のような二項動詞を使うと一連の単項動詞の機能を提供できます。 ]b=: i.7 0 1 2 3 4 5 6 b^2 NB.二乗 0 1 4 9 16 25 36 b^3 NB.3乗 0 1 8 27 64 125 216 b^0.5 NB.二乗根 0 1 1.41421 1.73205 2 2.23607 2.44949 ボンド接続詞の&(アンド、アンパーサンド)を使うと以下のように二項動詞の一方の引数を接続した動詞…
演奏会で渡されるプログラムは演奏される曲目の名称や解説です。語源的にはgramとproから成っていて、プログラムとはそこに書かれていることが起きる以前に書かれるもののことです。 その意味で、前章で述べたフォークの+/ % #は実際に文として(+/%#)bというように引数bと共に実行されて平均が計算されるので、プログラムです。しかしながら、通常、この様な手続き(処理、プロシージャ)は名称をつけて初めてプログラムと呼ばれます。 mean=: +/ % # mean 2 3 4 5…
前章で述べたように、3つの動詞がひとつながり(sequence)となって前後から独立している場合をフォーク(fork)と呼び、単項動詞の場合と二項動詞の場合、下記のように定義できる。 g g / \ / \ f h f h / \ / \ y y x y x y 図は、視覚的なイメージである。 以下の各文を実行し意味を述べよ。なお、%:(パーセントコロン)はルートを求める動詞であり、](右角かっこ)はアイデンティティ関数である。 a=: 8 7 6 5 4 3 b=: 4 5…
英語では、文やフレーズをどの順序で解釈するかを示すために句読点が用いられます。 The teacher said he was stupid. The teacher, said he, was stupid. 数学は主にかっこを用いて解釈の順序を示し、実行順序と呼ばれます。かっこだけでなく、関数(演算子)に実行順序があって、たとえば累乗(べき乗、冪乗、指数)は掛け算よりも先に実行されるし、掛け算は足し算より先に実行される。J言語はかっこを用いる他、次のルールがある。 1.動…
Jディクショナリー第3章の翻訳です。 前章での%aでは%(パーセント、わる)がaに作用して結果を出していました。これは英語で動詞が名詞や代名詞に作用するというのと類似しています。これまで数学用語の関数という言い方をしてきましたが、今後は関数というだけでなく、動詞という言い方も併用していきます。 +/ 1 2 3 4という文は、1+2+3+4という文と同値です。副詞の/(スラッシュ)は動詞とくっついて新たな動詞を作り出し、引数1 2 3 4に作用しています。別の言い方をすれば左…
J言語では配列やテーブルを自由自在に扱えます。テーブルのたてよこを入れ替える動詞に|:(たてぼうコロン、パイプコロン、トランスポーズ)があります。 (] ; |:) i.3 4 +---------+------+ |0 1 2 3|0 4 8| |4 5 6 7|1 5 9| |8 9 10 11|2 6 10| | |3 7 11| +---------+------+ x |: yというように二項動詞としてつかうと、左側の引数で指定された軸が最後の軸になるように入れ替え…
動詞のランクは動詞が引数にどう作用するかを決定する。ランクkの単項動詞は引数のk-cellに作用する。左側ランクがklで右側ランクがkrの二項動詞は左側引数のkl-cellと右側引数のkr-cellに作用する。動詞のランクは配列を扱う動詞の振る舞いを制御する強力なツールである。 Jプライマーからの翻訳です。 原始関数(動詞)のランクはJディクショナリーに書かれている。たとえば+(プラス、たす)を見ると、ランク情報はヘッダーの欄に単語のすぐあとに書かれている。+ 0 0 0とい…
k-cellという言い方がJ言語にあって、ランクkのセルをk-cellと呼ぶ、とJプライマーに書いてある。0-cellはアトム、1-cellはリスト、2-cellはテーブル、というぐあい。名詞のセルのランクが与えられれば、フレームは名詞のシェイプのそれ以外のものを指す、とのこと。 負の数字も使われる。_2-cellと_1-cellというふうに。そのようなセルのフレームはその数字の絶対値で示される長さを持つ。_1-cellはアイテムである。 abc=: 4 3 2$i.24 名…
APL/J言語:nub(重複を取り除く) ほかの言語だとuniqと同じようなJ言語の動詞に~.(チルダドット、ナブ)というのがあります。nubは英和辞典で引くと要旨とか要点とかいう意味のようです。考えてみればuniqを重複を取り除く、という意味に使うのも無理な話でどっちもどっちですね。 ~. 0 1 2 3 4 3 2 1 0 0 0 0 1 2 3 4 y=: 3 3 $ 'abcabcdef' y;(~.y);(~.3);($~.3) +---+---+-+-+ |abc…
J言語で+(プラス)を単項動詞として使うと引数の共役(きょうやく、conjugate)を返します。 複素数yは共役を掛けるとyの絶対値の二乗になります。 ]y=:3j4 NB.複素数 3j4 |y NB.絶対値 5 y * +y NB.yとyの共役を掛ける 25 +y 3j_4 3j4 * +3j4 25 3j4 * 3j_4 25 また、J言語には、j.(ジェイドット)という動詞があります。これは単項動詞で引数にマイナス1のルート(=>0j1)を掛けるものです。 ]i=:i…
…合です。 このことをAPL/J言語用語でアンビバレンスと呼ぶのですが、普通の英語ではそんな意味はないのでよくない用語だと思う。 混乱しそうな使い方ですが、実際はそれほどでもない。 7-5 NB.7-5では引き算の意味のマイナス記号 2 -5 NB.-5のような単項動詞ではプラスマイナスの符号を逆転させる意味 _5 7%5 NB.二項動詞では割り算の意味の%(パーセント) 1.4 %5 NB.単項動詞としては逆数の意味 0.2 3^2 NB.二項動詞としてはべき乗の意味の^(キ…
…ってなかったっけ? APL/J言語もあのころの理論を引きずっているのかもしれません。 Jディクショナリーでは英語圏の人のようにはいかないよね。 75 NB.大なり、Greater than 1 NB.1は真偽の真(true)の意味 7>.5 NB.大なりドット、Greater of 7 NB.大きいほうの数字を返す。文字列は不可 10^3 NB.^(カレット)は指数 1000 10^.1000 NB.^.(カレットドット)は対数(ログ) 3 7=5 NB.=(イコール)は同等…
b.(ビードット)はブール型の用途と、ベーシックの用途の二通りがあります。
Jボキャブラリーのb.(ビードット、ベーシック)のところを読みます。(翻訳) u b. yはyが_1(マイナスいち)ならば、uのオブバースの線形表現、yが0ならば動詞uのランク,yが1ならばuの固有関数の線形表現。 (翻訳終り)例によってわかりません。例をみます。 ^ b. _1 NB.^(キャレット、べき乗)の逆関数は対数(ログ) ^. ^ b. 0 NB.^(キャレット、べき乗)のランクは0 0 0 0 0 0 ^ b. 1 NB.^(キャレット、べき乗)の固有関数の線形…
Jボキャブラリーの:.(コロンドット、オブバース)のところを読みます。(翻訳) u :. vの結果がuでありかつオブバースをとるとvである、というように使う。接続詞&.(アンドドット、アンパーサンドドット)および^:(キャレットコロン、繰返し)においてはインバースと同値 (翻訳終り) むむぅ、わかりませんね。とりあえず例を見よう。 y=: _4 0 4 3j4 rp=: 複素数ではダメ domain error rp I rp y inv=:*:@{.@,@> NB.符号対応…
オブバースというのがあってたぶん逆関数のことで、たとえば自乗の逆関数はルート(自乗根)、掛け算の逆関数は割り算とか思うのですが、Jディクショナリーはもう少しややこしい言い方をしている。わたしの言う意味の逆関数はインバースであり、オブバースはそれを一般化したもののようです。 (翻訳) f^:_1の結果は関数fのオブバースと呼ばれる。もしf=: g :. hとするとhがオブバースである。そうでない場合、fのインバースである。 インバースは%:(パーセントコロン、自乗根、ルート)を…
Jディクショナリー(Roger K. W. Hui, Kenneth E. Iverson) のイントロにJ言語の特徴として7項目挙げてあります。わたしはまだ勉強始めたばかりですが、この7項目に非常に納得が行ったので、書き留めておきます。 1.原始関数(primitives)は1文字か2文字からなるニーモニックである 2.関数に実行順位はない(掛け算も足し算も同等に扱い、右から実行) 3.たとえば-(マイナス記号)は右側だけに引数をとる単項動詞としては引数のマイナス化(neg…
&(アンパーサンド、アンド記号)が動詞と動詞にある場合の用法について。J言語のボキャブラリーのコンポーズというところを読み進みます。 u&v yはu v yと同値。したがって、+:&- 7は_14になる。さらに、u&vはu@vと同じである。 これはわかりやすい。つぎ。 x u&v yは(v x) u (v y)である。たとえば3 +&! 4は30であり、これは3の階乗と4の階乗の合計である。 3 +&! 4 30 !4 24 !3 6 これも問題ないかな? 次のように書いた方…
…つ並んだ形になって、APL/J言語で言うところのフックのような作用で、元の数列にその最後の2つの数字の和がつながったものができます。 fib=:,+/@(_2&{.) fib 2 3 2 3 5 さてJ言語には繰り返しの接続詞(コンジャンクション)があって^:(やまコロン、カレットコロン)これを使ってたとえば10回繰り返します。 fib^:10(0 1) 0 1 1 2 3 5 8 13 21 34 55 89 へんな構文なので、あとでVocabularyで調べておこう。 f…
Easy Jの第6章は「可能性を調べる」という表題で、まず課題が述べられます。 「仮に、ふた通りの選択がありうる状況とする。それぞれについて、なにかが受け入れられるか拒絶されなければならない。たとえばオニオンをいれる(またはオニオン抜き)、チーズ、ソーセージ、あるいはマッシュルームをピザに入れるかどうかというのでもいい。目的はすべての可能性についての料金表を作ることである。課題に入る前に動詞を二つ導入する。#.(シャープドット、ベース変換)、と#:(シャープコロン、アンチベー…
Easy Jは少し変な本ですが、いろいろ面白いです。 今回は第5章の「ボックスとレコード」についてです。 fname=.'Harry' sname=.'Potter' fpubl=.1998 shelfcode=.'childrens' (テーブルについて、ボックスにして並べると横にならぶ。 m=.i.3 4 ( domain error ( このようにボックスの足し算はできない。 ;(コロン)でつないでもボックス化できる。 fname;sname;fpubl;shelfco…
Easy Jの第4章を読み中。 x,:y 2.1 2.4 3.6 3.7 4.3 5.1 5.5 5.8 5.9 6.6 7.4 8.2 4.1 6 5.5 8.2 7.5 12.6 8.1 10.8 7.2 13.1 11.3 15.6 というようなデータがあって、逆行列の%.(パーセントドット)を使って、 y%.x 1.78636 が最少自乗法による傾き曲線です、とのこと。 ためしにx,yをプロットしてみます。 load 'plot' 'marker' plot x;y …
質問:逆行列ってなんですか? Wikipediaに下記のような記述があります。 次正方行列に対して、 (は次単位行列)となる次正方行列)が存在するとき、は次正則行列、あるいは単に正則であるという。またこのとき、を 、の逆行列と呼びと書く。 うーん。なんだかわかりませんね。nを2として2x2の行列で考えよう。 ]a=:i.2 2 0 1 2 3 単位行列はこんな感じですか? ]square_matrix =: 2 2 $ 1 0 0 1 1 0 0 1 ここで言う行列の積はJ言…
J言語の四則演算の記号(+-*%)は割り算が%であること以外は意外にまともです。1を3で割ると0.333333になるあたりはかえってプログラム言語がこんないいかげんでいいの? と心配になるくらい普通。 3 + 4 7 7 - 4 3 3 * 4 12 12 % 4 3 1 % 3 0.333333 次から普通でない話になります。 1.マイナスはマイナス記号ではなくアンダーバー 2.四則演算の演算の順序は基本的には右から 3.カッコで順序を変えられる 4.四則演算の記号は単項動…
初めは足し算だけがあったのだろうと思う。引き算は足し算の逆だし、掛け算は足し算の繰り返し。割り算は掛け算の逆。 3 + 4 7 7 - 4 3 3 + 3 + 3 + 3 12 3 * 4 12 12 % 4 3 負の数という概念があります。売り値より仕入れ値が高いので赤字とか、儲けがマイナスとか。あるいは気温が氷点下マイナス10度を記録したとかをどう考えるかというときに負の数を用います。マイナスをJ言語で実験。 - 4 _4 -4 _4 0 - 4 _4 - 4 + 3 _…