このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

J言語

コンソールへの出力

そもそも、エコーバック利用以外での Hello World も容易ではない。1!:2 がファイル出力で、 x 1!:2 yxの値: 2 screen output. 4 standard output (stdout) 5 standard error (stderr) のはずだが、rank errorになってしまってうまくいかない。 4 1!:2 'hel…

処理系まわり細々

jconsole gtkide とすると、GUIが立ち上がる。 jconsole -js スクリプト文字列 でone-linerを実行できるらしい。自動的なエコーバックはない。 jconsoleと同じディレクトリにあるprofile.ijsは実行される。 ~config/startup.ijs も実行される。

Ravel演算子

任意の配列をシリアライズする演算子 - 檜山正幸のキマイラ飼育記 メモ編のflattenは、Ravel(ほぐす)という名前で組み込みにあった。記号はカンマ一個。

フォークは使いやすい

フォーク (f g h) は (f→g←h) と思うとある程度わかりやすい。単項でも二項でも比較的に直感的な動きをしてくれる。フックやn-トレインはまだ慣れてない。

任意の配列をシリアライズする演算子

flatten=: 3 : '(,/)^:(#$y) y'なるほど、慣れれば書けるけど、慣れても読めない。

jpathが認識する名前

jpath '~' jpath '~home' jpath '~config' jpath '~system' jpath '~addons' jpath '~bin' jpath '~tools' jpath '~break' jpath '~temp' jpath '~snap'

名前を持つメタ演算子を発見

+/ each (1 2 3; 4 5 6; 7 8)結果は 6;5;15 。

配列のインデックス

http://www.jsoftware.com/docs/help701/learning/06.htm に従い次を定義した。 idx =: {~ itr =: sel =: exc =: もとは SuAx =: Sel =: Excl =: はて、うまくいくか?

リストの整列と逆転

sort=: /: { [ rev=: |.整列はフォーク(3-トレイン)で書ける。/: はGrade Upという演算子で、なにやら複雑だが、とりあえずインデックスを値が小さい順で並べる。[ はSame演算子でidentity、{ がFrom演算子で select item(s) の働き。逆転(reverse)は専…

難読な理由

順不同未整理 右から左 膨大な記号演算子 曖昧なデータ構造と型システム 番号による識別、外部機能、初等関数など 入力形式、表示形式、内部構造が全部別 改行は使えず、空白も不要なので整形できない/しない 結果的に記号がギッシリ並んだ謎のテキスト 区…