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

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

CatyScrpiptが読みやすいと感じるとはコレ如何に

エソラングっぽいと思っていたCatyScriptだが、“慣れ”とは恐ろしいもので読みやすく感じる。余りにもバイアスがあるから、客観的にreadableなモノなのかどうか? の判断は付かない。

まだ実装してない begin/repeat を使った例(自己forward版は実際に動かしている)。“慣れ”だけじゃなくて、以下のclientコマンドのコードは直前に書いた日本語のコメントそのままのように読めるが、やっぱりバイアス入ってる?

command stop :: void -> never {
 forward void
};

/** クライアントの振る舞いをエミュレートする 

クライアント(とそのアクター)は次のことを行う。

# まず、受け取ったハイパーメディア・オブジェクトから、適当なトリガーを選ぶ。
# うまく選べなかったときはオシマイ。
# 選んだトリガー(例えばHTMLフォーム)に対する適切な値セットを生成する。
# トリガーが指し示すターゲットに対して、値セットを使ってリクエストを実行する。
# リクエストの結果であるハイパーメディア・オブジェクトを受け取り、また最初から繰り返す。

*/
command client :: GeneralHyperMedia -> never {
 begin {
   select-trigger |
   when {
     undefined ==> stop,
     *         ==> pass,
   } > selected-trigger |
   generate-request-values > request-values;
   [%selected-trigger, %request-values] | exec-request | repeat
 }
};