編集履歴ページに戻る
APLはキーボード入力と画面出力がアレなのでしばらく不遇だったが、
UnicodeにAPL文字が入ってからちょっとはましになったかもしれない、と思い、
APLの方言である[http://www.aplusdev.org/ A+]の学習を開始してみた。
* 文字コードの壁
+ APL諸言語と同じく、
+ A+もASCIIコードの非文字領域をAPL文字とみなして評価しているので、
- APL諸言語と同じくA+もASCIIコード領域をAPL文字とみなして評価しているので、
UnicodeとA+文字を相互に変換してやる必要がある。
** Emacsから使う
+ A+をEmacsのUnicode入力から使うには[http://stud4.tuwien.ac.at/~e0225855/unicapl/unicapl.html UnicAPL]のapl.elが恐らく必須なので、いれておくこと。
- A+をEmacsから使うには[http://stud4.tuwien.ac.at/~e0225855/unicapl/unicapl.html UnicAPL]のapl.elが便利なので、いれておく。
これと、[[sf:openAPL]]付属のapl-mode.elを組み合わせて、
aplus-modeをでっちあげてみた。
- [[files:aplus-mode.el]]
これをいれて、.emacsに、
{{{
(setq auto-mode-alist
(append
'(("\\.\\+\\'" . aplus-mode))
auto-mode-alist))
(autoload 'aplus-mode "aplus-mode" "edit A+ script." t nil)
}}}
を加えることにより、拡張子''''''.+''''''でaplus-modeで開くようになる。
+ あとは、M-x set-input-method apl-asciiでapl.elのAPL入力モードに入れるようになるので、
+ プログラミング環境はほぼ完成。まだ対話入力モードがないけど我慢。
- あとは、M-x set-input-method apl-asciiでapl.elのAPL入力モードに入れるようになるのでプログラミング環境は完成。まだ対話入力モードがないけど我慢。
** それ以外での入力
uim-aplも作ってみた。WebページにAPLのコードを貼りたいときには便利。
+ - [[files:uim-apl.scm]]
- - [[files:uim-aplus.scm]]
+ uim.elでもascii-apl-direct-uim, ascii-apl-unic-uimで入力できるようにのすけさんに対応していただいた。
+ 深夜(というか朝)にわざわざ面倒をおかけします。感謝。
+
* プログラムを書いてみる
{{{
⍝ ここはコメント
"hello,world."
sys.exit 0
}}}
+
+ たぶん、A+に関しては次のエントリから意味不明な文字が飛び交います。
+ A+にはASCIIで入力するモードもあるのだけど、こっちは使いません。
+ APLだもんね。
+
+ ----
+ 追記:
+ - 一部の文字がUnicAPLの変換テーブルにないので(⍨等)、
+ A+で解釈できないまま保存されることがある。
+ テーブルに対応表を追加するだけでいいのだが、なかなか大変だ。
+ - 出力される文字もAPLコードなので、フィルタが必要となる。たとえば、"{minus}1"は"−1"となって出力される("-1"ではないので注意)。
+ - uim-apl.scmが誤ったURLを指してので訂正した。