aiscript icon indicating copy to clipboard operation
aiscript copied to clipboard

🔋 A lightweight scripting language runing on JavaScript

Results 180 aiscript issues
Sort by recently updated
recently updated
newest added

今見つかっているものでは ``` !false && !true // 現行はtrue, nextはfalse ``` 現行は`!(false && !true)`だったのが`(!false) && (!true)`になったということだと思われるのでその旨をそのうちドキュメントに追記しておきたい

現在の実装だと関数同士の比較は常にfalseを返すのでなんとかしたい https://github.com/aiscript-dev/aiscript/blob/aiscript-next/src/interpreter/util.ts#L89 一応リリースされているもの仕様を変えることになるので破壊的変更としてnextの方へPRを出したほうが妥当かもしれない? もっと早くに気づければよかった・・・てへぺろ

enhancement

AiScript Nextをリリースする時に破壊的変更をまとめてしちゃおうプロジェクト。 専用ブランチを用意してそこに追加していく方が良いかも ブランチ作りました → [aiscript-next](https://github.com/syuilo/aiscript/tree/aiscript-next) これも含めたほうが良いという変更点があれば教えてください このissueは目次として使うので各問題に対するディスカッションは個別のissueを立てて行ってください 解決方法が定まらない問題や時間のかかる問題は今後の課題とし、このリストからは除外することがあります ## やること? - [x] #144 - PR #413 - PR #415 - [x] #359 - PR #360 - [x] #381 -...

priority: High

pythonなどのように、例えば ``` let array=['hoge', 'fuga', 'piyo']

enhancement

#511 で言った分割代入がとりあえず形になったので申請します。 ### 要改善? まあいいやと思って申請しましたが、こうしたいという意見があれば直したいと思います。 - `[a, b] = [0]`のように要素が足りなかった時はNULLが代入されます。 - `[a, [b]] = [0]`のような場合には`Expected array, but got null.`のエラーが出ます。 - 変数宣言と同時に行うこと`let [a, b] = [0, 1]`はできません。

[JavaScriptのような分割代入](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment)を出来るようにしたいです。 ``` var a = "" var b = "" // 配列の分割代入 [a, b] = ['foo', 'bar']

enhancement

## 概要 https://github.com/aiscript-dev/aiscript/blob/537fa96b3990fe55a7bebd1864f12ac87144b876/src/interpreter/lib/std.ts#L408-L427 現行の実装では、 $[0, 1)$ の乱数を生成し、範囲を $[min, max+1)$ に整形してからfloorするという方法で生成されています。 しかし、この方法では偏りが生じます。 ## 現行実装の問題点 ### 浮動小数点数演算の丸め誤差による偏り まず、 $[0, 1)$ 内の有効な倍精度浮動小数点数は $4,607,182,418,800,017,408$ ( $2^{52} * 3 * 11 * 31$ )パターン存在します。 `Math.random()`はこれらの数の中から何らかの分布(選定されたパターンを倍精度浮動小数点数として解釈し観測した場合に一様分布となるような分布)に従ってランダムに値を選定して返します。...

enhancement

今のAiScript上で`NaN`値は扱いにくいので`error`にする?

bug
enhancement

配列代入時の代入先存在チェックがTODOのまま実装されていないので、範囲外の添字や整数以外の添字でも代入できてしまう ```ts let a = [] a[1] = 'v' // not error