FINEARCHS
FINEARCHS
基本的にはそうなんですが、例えばuuidなどは将来的にもgenerate以外の用途は生まれないと思うんですよね。 そういうものにも固有の名前空間を与えていると名前空間の数が必要以上に多くなってしまうと思うので、私としてはまとめても問題ないものはまとめたいです。
将来関数が増えてドキュメントが名前空間ごとに分けられるようになった場合、関数が一つしかないページがたくさんあるような状況は見通しが悪そうだ、という感じです
逆に一つのページに項目が多すぎるのも問題なので、`Math:`のように既に多くのメンバーがある名前空間から`Rand:`などを独立させるのは賛成です。
つまり今までの`Math:PI`が`std:Math:PI`になったりするような感じですかね? 流石に書くのが面倒になりそうな気がしますが…
今の&&を繋げる形式だと、例えば後で例外を投げる処理を入れたくなった時とかに拡張しづらいみたいな感じですか?
修正しました。問題ないでしょうか?
そういえばなんですが、isCompatibleType()は元々どのような目的で作られたものなんでしょうか? 「型bの値は型aに代入可能である」ことをチェックするものなら、 https://github.com/syuilo/aiscript/blob/242731801efc3d9129accc20dfeb1fd5614a62d3/src/type.ts#L56 ここは修正する必要があります。
anyを除去するつもりはないですが、型推論に使用するのであれば `let a:any = `は許容すべきですが、 `let a:num= `は禁止すべきであるため、 isCompatible()がそのチェックの関数であれば修正すべきです。 ですが、そうでないなら本来の用途を知りたいです。
代入可能判定で使えるように https://github.com/syuilo/aiscript/blob/242731801efc3d9129accc20dfeb1fd5614a62d3/src/type.ts#L56 は https://github.com/syuilo/aiscript/blob/bb4ae63c7d34e87a6da300ca12904fe1dd2b0ea8/src/type.ts#L60-L61 に修正しました。
(実はMath系は https://github.com/syuilo/aiscript/commit/031f5d7bcd9d43b4a89a41f8861a65a489122edd で既に追加されているのですが、ドキュメント整備がまだでしたね…)