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

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

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

導入したい機能

パターンの侵入性 空セレクターを持つパターン 組み込み変数から関数に 関数(組み込み変数)の追加 マッチングのキャンセル機構 シーケンスパターンの導入 「パターンの侵入性」は既に論じた。他の項目を別々な記事にする。

侵入性のデフォルトはやっぱり侵入的か

パターンの侵入性に関して、デフォルトは非侵入的にすると書いた(→「非侵入的パターンと侵入的パターン - 檜山正幸のキマイラ飼育記 メモ編」)。しかし、やっぱり侵入的かもしれない。侵入的パターンだと、意図しない重複出力が生じる。これが問題なので非…

非侵入的パターンと侵入的パターン

新しい用語法によれば、パターンは次のいずれかの形である。 原子パターン(atomic pattern) 原子パターンのOrElse結合 デフォルトで、パターンは非侵入的であるとする。つまり、あるノードにマッチングした場合(成功時)、次のノードは水平順序により決定…

抽出操作

Eが抽出式のとき、extract(a, E) は次のように評価される。 aとEから決まる検索範囲のノードセット(XPathで言う軸)をSとする。Sが空のときもある。 Eから決まるパターンをPとする。 概念的には(実装とは違う)、検索範囲Sをスキャンして配列として結果を…

パターンマッチング

パターンは、ノードaに対してマッチングされ、マッチングが成功すると内容が評価されてパターン全体の値を得る。マッチング失敗のときは、内容の評価に進まず、評価は中止される。説明の便宜上の話であるが、マッチングの失敗を表すためにundefinedを使う。…

概念と用語法

従来(うちわで)使っていた用語法を幾分変える。情報抽出に使う式を抽出式(extract expression)と呼ぶ。次のBNFでパターンを定義する。 原子パターン ::= セレクター 条件式? 内容? 終端子 パターン ::= 原子パターン | '(' 原子パターン ('|' 原子パター…

JQueryでAjaxフォーム送信

HTMLのフォームからAjax送信。serialize()というメソッドを提供しているのが便利。 // 操作対象のフォーム要素を取得 var form = $( ... ); // 送信 $.ajax({ url: form.attr('action'), type: form.attr('method'), data: form.serialize(), // … }); 参考:…

ツリーの水平順序とパターンの侵入性

Information Extractorとでも呼ぶべきソフトウェアについて、[extract]タグを付けて書く。系統的には書けないが、そのとき重要だと思ったことを書く。Information Extractorのおよその構造は既に分かっている。式(expression)を使って文書ツリーから情報を…

SSHに関するメモ

キーペアの生成は、ssh-keygen を使う。 生成する鍵の種類は -t オプション RSA鍵かDSA鍵 -Cコメントは「新しいコメントを指定します。」 デフォルトでは、$HOME/.ssh/identity 、 $HOME/.ssh/id_dsa または $HOME/.ssh/id_rsa に鍵 (identity ファイル) を…

コンソールへの出力

そもそも、エコーバック利用以外での 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 も実行される。

自分のIPアドレスを取得

$ ifconfig eth0 | grep 'inet addr'

Ravel演算子

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

bashのヘルプ

help, type, command, builtin, function, local, declare とか。 $ help help help: help [-s] [pattern ...] Display helpful information about builtin commands. If PATTERN is specified, gives detailed help on all commands matching PATTERN, othe…

フォークは使いやすい

フォーク (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)は専…

難読な理由

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

予定

明日の午後3時。