2008-09-01から1ヶ月間の記事一覧

phorth---(その1.7)main関数---簡単な対話型シェル

デバグ オペレータsubの定義が間違ってました. -- procExp i (Invoke "sub") = procStack i (\(x1:x2:xs) -> (x1-x2):xs) procExp i (Invoke "sub") = procStack i (\(x1:x2:xs) -> (x2-x1):xs) スタックの順番を間違えてました. 簡単な対話型シェル(REPL…

phorth---(その1.6)積み残したrollの実装

rollの実装 保留していたrollに戻ります. rollはn個の要素をk回だけ「上に」巡回させます.例えば, 10 20 30 40 50 3 1 roll => 10 20 50 30 40 10 20 30 40 50 3 2 roll => 10 20 40 50 30 10 20 30 40 50 3 3 roll => 10 20 30 40 50 という具合です.大…

phorth---(その1.5)算術・スタックオペレータの追加

算術オペレータの追加 普通に使われる演算で以下のものを追加します.PostScript Level 1のサブセットです. add : n1 n2 add => n1+n2 sub : n1 n2 sub => n1-n2 mul : n1 n2 mul => n1 x n2 idiv : n1 n2 idiv => d mod : n1 n2 mod => r (n1 = n2 x d +r …

phorth---(その1.4)オペレータ定義の仕様変更2

Evaluator さらに,スタックも type Stack = [Stackable] から type Stack = [Stackable] data Stackable = Pushed Literal | Opname Word | Code AST deriving Show と変更します.つまり「新しいオペレータの名前」と「コードのブロック」もスタックに積め…

phorth---(その1.3)オペレータ定義の仕様変更1

Parserの改造 新しいオペレータを定義する際に /a { 1 2 } def という構文を使って,これをパースして [NewWord "a" [Push 1 ,Push 2]] というASTを構築しました.これを評価すると Interp {stack = [], dict = fromList [("a",[Push 1,Push 2])]} という状…

相加平均・相乗平均の不等式の新証明

どうやら一般の相加平均・相乗平均の不等式の「新しい証明」,それもものすごく初等的な証明が見つかったようです.http://jipam.vu.edu.au/issues.php?op=viewissue&issue=97上のURLの「56 A Simple Proof of the Geometric-Arithmetic Mean Inequality Yas…

phorth---(その1.2)Evaluator

評価器(Evaluator) ASTが作れるようになったので,評価器の番です.harrorth--では省いた「新しいオペレータの定義」があるので,その部分を作らないといけません.新しいオペレータは「名前」,「内容」そしてその間の「対応関係」であり,また定義したら…

数学ガール---フェルマーの最終定理

いろいろやってて時間がとれず,やっと購入,読了.そう簡単に店頭から消えるわけはない(間違いなく初版一刷の部数は最低でも一万くらいはあるはずだから)ので,悠長に構えていたわけですが.やはり結城さんらしいというか,ご本人にもチャットで申し上げ…