十進BASICでJavaScriptのeval()関数を呼び出してみました。(^_^;
VBScriptのように、あまりいろんなことはできませんが、eval()関数内で代入ができます。(^_^;
それから、「Math.」を付けるのが面倒なので、付けなくてもいいように工夫しました。
● JsEval1.BAS
DECLARE EXTERNAL FUNCTION Js.Eval$, Js.Eval LET dummy = Eval("cosDeg=function(x){return cos(x/180*PI);}") ! 関数定義 LET f$ = "cosDeg(x)" FOR x=0 TO 180 STEP 30 PRINT x, Eval("x="& STR$(x) &"; "& f$) NEXT x END MODULE Js OLE CREATEOBJECT "ScriptControl" EXTERNAL SUB setLanguage(s$) OLE PropertyPut "language" END SUB CALL setLanguage("Jscript") PUBLIC FUNCTION Eval$, Eval EXTERNAL FUNCTION Eval$(s$) OLE METHOD "eval" END FUNCTION ! 実数を返すEval EXTERNAL FUNCTION Eval(s$) LET s$ = "with(Math){" & s$ & "}" ! 「Math.」を省略するため WHEN EXCEPTION IN LET r$ = Eval$(s$) SELECT CASE r$ CASE "INF" LET result = MAXNUM CASE "-INF" LET result =-MAXNUM CASE ELSE LET result = VAL(r$) END SELECT USE ! PRINT r$ LET result = -EPS(0) ! エラーのときは負のEPS(0)を返す END WHEN LET Eval= result END FUNCTION END MODULE
●実行結果
0 1 30 .866025403784439 60 .5 90 6.12303176911189E-17 120 -.5 150 -.866025403784439 180 -1
※参考URL
●十進BASIC−OCXの利用
●十進BASICでVBScriptのeval関数を呼び出してみた - rscのブログ
●十進BASICでVBScriptのeval関数を呼び出してみた。(2) - rscのブログ