update:2_0_fc
文書の過去の版を表示しています。
概要
- MiniScriptの次期バージョン・MiniScript2の最終候補バージョンが公開されてます。
- 機能を記載してみるけど、あくまで私見なので参考程度に見てね。
- 試しに動かしてみたレポートも別途書く予定です。
変更点(主に1から2への変更)
- まず資料
- 1個目:乗算の計算の順番が変更になった。
- MS1は前から乗算していくんだけど、他の言語は後ろから順番に積み上げていく方式とのこと。
- よって、それに合わせる形で後ろから(右側の数値から)乗算していく形式に変更された。
- 2個目:数値リテラルの点構文
- つまり「4.foo」「3.14.foo」みたいな書き方を許すとのこと。
- 3個目:フリーズ構文
- C言語でいうconstのような値を動的に定義することができる機能のよう。
- 勝手に更新されたくない場合は便利かもしれない。
- 4個目:関数式
- end function outerってキーワードが追加されたみたいだけど、関数への参照を得るみたい。どういう効果かは具体的には不明。
- 5個目:mapの反復順序
- MiniScriptの仕様としてmapは順序が定義されていない。ただ、C#はDictionaryクラスを利用している関係上挿入時にキーを返していたため、C++版も同じようにするとのこと。
- 6番目:文字列のインデックス付け
- どうもC#版とC++版ではインデックス付の方法が異なっていた(C++がUTF-8、C#がUTF-16)ため、それが統一されたということみたい。
- 7番目:エラー型の追加
- ランタイムエラーの出力を特定の型で受け取ることができる。これはだいぶ助かるのではと思った。今までは数値型で確認するとかだったし。
- 8番目:プロパティセッター
- 主にクラスを使うときに影響するみたいで、変数アクセスの際にアクセスできるメソッドを選定できる感じ、かなあ。
- ちょっと使ってみないとわからない。
- あとパフォーマンスにも影響があるので使い込む場合影響ありそう。
- 最後にキーワード情報
- info(x):フリーズ済みの値を返す(3番目)
- funcRef:無名関数lambdaみたいな使い方になりそう(4番目)
- listの内部の処理方法が変わったみたい。ちょっと内容わからんので調べてみる
- mapにfrozenというプロパティが追加された(3番目)
- errorにmessage/inner/stack/isaプロパティが追加された。(7番目)
update/2_0_fc.1790130903.txt.gz · 最終更新: 2026/09/23 11:35 by machiaworx