Maxima 練習 (3) 再

飛ばしていた、練習 (3) に戻ります。

練習 (1) や (2) で生成したランダムウォークにおいて、ステップごとの位置を求めよ。


練習 (5) で定義した my_foldlist を使えばできます。

ただ、与えられた 2 つの引数の和を返す関数(Mathematica の Plus 関数にあたるもの)が Maxima で見つからなかったので、無名関数(lambda)を使っています。

my_foldlist( lambda( [x, y], x + y ), 0,
    part( [1, -1], makelist( random(2) + 1, i, 0, 9 ) ) );
my_foldlist( lambda( [x, y], x + y ), [0,0],
    part( [[1,0], [0,1], [-1,0], [0,-1]], makelist( random(4) + 1, i, 0, 9 ) ) );