MAXIMAat SIM
MAXIMA - 暇つぶし2ch412:GO MAXIMA
04/08/29 23:44
>>411
ええっと このへんは 次のように考えてください。
MAXIMA言語で定義された関数は コンパイルしない限り
シンボルの属性としてしまわれます。今の関数なら
(%i10) :lisp (symbol-plist '$|f|)
(MPROPS (NIL MEXPR ((LAMBDA) ((MLIST) $x) ((MTIMES) ((%COS) $x) (($EXP) $x)))))
従ってこれを属性として取り出して 実行するマクロmfunction-callを使って
実行しなければなりません。

(%i10) :lisp (mfunction-call $|f| 1.2)
1.203070112722819

(%i10) f(1.2);
(%o10) 1.203070112722819 で同じ実行であることが
解ります。
もしコンパイルした後では $|f|は LISPの関数に格上げされているのでこの実行は
($|f| 1.2)
としなくてはいけません。mAXIMAのコンパイラは時々両者をとりちがえてしまい、
コンパイルしたコードが動かないことがあることも覚えておくとよいでしょう。




次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch