Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Core:add などを可変長引数化する #690

Open
5 tasks
FineArchs opened this issue Jun 3, 2024 · 12 comments
Open
5 tasks

Core:add などを可変長引数化する #690

FineArchs opened this issue Jun 3, 2024 · 12 comments

Comments

@FineArchs
Copy link
Member

いくつかの関数を可変長引数化したいと考えています。

  • Core:add, Core:mul: 総和・総乗を求める
  • Core:and, Core:or: 全てtrueならtrue / 一つでもtrueならtrue
  • Core:eq: 全ての引数が等しいか判定する
  • Core:neq: 全ての引数が異なるか判定する(重くなりそう、要検討)
  • Core:gt, Core:lt, Core:gteq, Core:lteq: 隣接する二引数がそれぞれ条件を満たしているか返す 例:Core:gt(a, b, c)はa > b > cが成立していればtrue
@syuilo
Copy link
Collaborator

syuilo commented Jun 3, 2024

可変長引数あんまり好きじゃないから配列を受け取ることで実現したい

@FineArchs
Copy link
Member Author

@syuilo 引数が2つなら今までの挙動、1つなら配列として見るという感じですかね?
スプレッド構文を作ればどちらでも大差なくなりそうですが、その場合でも配列受け取りがいいですか?

@syuilo
Copy link
Collaborator

syuilo commented Jun 4, 2024

  • 引数が2つなら今までの挙動、1つなら配列として見る

でも良いけど、型定義を考えると別名の関数を実装した方が良いかも

@FineArchs
Copy link
Member Author

@syuilo Core:add_arr([1, 2, 3])みたいな感じですか?

@syuilo
Copy link
Collaborator

syuilo commented Jun 4, 2024

そうね

@marihachi
Copy link
Contributor

四則演算の関数群、パフォーマンスあまり良くないので命令化したいって話があったと思います。
なので、いじらなくて良いんじゃないでしょうか

@FineArchs
Copy link
Member Author

@marihachi 命令化ってどういうことですか?

@marihachi
Copy link
Contributor

ノードタイプをfnではなく、専用で用意してインタプリタでそのノードタイプについての処理を書くという形です
四則演算などは主に関数呼び出しに変換されるので

@marihachi
Copy link
Contributor

Add関数などはいずれ廃止される気がします。

@FineArchs
Copy link
Member Author

そんな話があったんですか…
まあその場合でも、

@syuilo Core:add_arr([1, 2, 3])みたいな感じですか?

これみたいな新関数の追加はやりたいです

@marihachi
Copy link
Contributor

ノードタイプをfnではなく、専用で用意してインタプリタでそのノードタイプについての処理を書くという形です
四則演算などは主に関数呼び出しに変換されるので

@syuilo 前にこのつもりしてなかったっけ?

@FineArchs
Copy link
Member Author

ノードタイプをfnではなく、専用で用意してインタプリタでそのノードタイプについての処理を書くという形です
四則演算などは主に関数呼び出しに変換されるので

とりあえずissue化しておきましょうか

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants