リナザウは非常に便利なのだけど、計算に関してはち
と使いにくい、ということで、Python で計算用の小型言
語(現在インタープリタ限定)作ってみました。
※言語というか、フロントエンドかも
ベースは RPN の FORTH ですが、最近 Scheme を齧っ
た(というか、舐めた程度かしらん)ので、リストがほ
しいなぁ、と思い、文字列を評価できる怪しげなまがい
物を作って見ました。
ブロック定義などをはしょったので、制御構造を書く
とかなり面倒ですが、Python に丸投げの2項演算子や数
学モジュールの関数は全て使えますので、簡単なものに
は便利です。
<現在の使用>
値 値 演算子
値 演算子 値
値 識別子=
識別子にバインド
”...<RET>
文字列(末尾に空白を付加)
文字列 !
文字列の評価
@コマンド
システムコマンドの呼び出し
_コマンド
1引数のPython関数の呼び出し
$n$m
n番目とm番目のスタックの内容を入れ替え
※スタックは1から数えはじめます
真 偽 テスト ?
テストが真なら真を、偽なら偽を残す
真 偽 テスト ?!
テストが真なら真を、偽なら偽を「実行する」
その他、S(Swap)D(Dup)など、シンタックス若干
<再帰によるループの例(意味ないけど)>
000>>>"1 - S 5 + S D x S y S ?!
001>>>x=
000>>>"+ .
001>>>y=
000>>>5 20 x !
105.0
000>>>