96 lines
2.4 KiB
Plaintext
96 lines
2.4 KiB
Plaintext
|
|
Nyash言語の必須機能について深い相談です(文法改革の続き)
|
|||
|
|
|
|||
|
|
【前回の合意事項】
|
|||
|
|
- 予約語10個に削減
|
|||
|
|
- セミコロン不要(改行区切り)
|
|||
|
|
- フィールド宣言は name: Type 形式
|
|||
|
|
- publicは先頭配置
|
|||
|
|
|
|||
|
|
【重要:忘れていた必須機能】
|
|||
|
|
|
|||
|
|
1. switch/case文(またはwhen文)
|
|||
|
|
- if文地獄を避けるために絶対必要
|
|||
|
|
- 以前Claude提案のwhen文も検討
|
|||
|
|
- パターンマッチング機能は必要?
|
|||
|
|
|
|||
|
|
【例:現在のif文地獄】
|
|||
|
|
if type == "dog" {
|
|||
|
|
bark()
|
|||
|
|
} else if type == "cat" {
|
|||
|
|
meow()
|
|||
|
|
} else if type == "bird" {
|
|||
|
|
chirp()
|
|||
|
|
} else {
|
|||
|
|
silent()
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
【理想的な形は?】
|
|||
|
|
when type {
|
|||
|
|
"dog" => bark()
|
|||
|
|
"cat" => meow()
|
|||
|
|
"bird" => chirp()
|
|||
|
|
else => silent()
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
または
|
|||
|
|
|
|||
|
|
switch type {
|
|||
|
|
case "dog":
|
|||
|
|
bark()
|
|||
|
|
case "cat":
|
|||
|
|
meow()
|
|||
|
|
default:
|
|||
|
|
silent()
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
【その他の必須機能候補】
|
|||
|
|
|
|||
|
|
1. continue文
|
|||
|
|
- ループの次の反復へスキップ
|
|||
|
|
- breakはあるのにcontinueがない
|
|||
|
|
|
|||
|
|
2. null/nil/void値
|
|||
|
|
- 現在はVoidBoxだけ?
|
|||
|
|
- もっと簡潔な表現が必要?
|
|||
|
|
|
|||
|
|
3. 型チェック機能
|
|||
|
|
- value is StringBox のような?
|
|||
|
|
- typeof演算子?
|
|||
|
|
|
|||
|
|
4. エラーハンドリング
|
|||
|
|
- try/catch/finallyは予約語リストにあるが、本当に必要?
|
|||
|
|
- Result型だけで十分?
|
|||
|
|
|
|||
|
|
5. モジュール/名前空間
|
|||
|
|
- importはあるが、exportは?
|
|||
|
|
- 名前空間の分離は?
|
|||
|
|
|
|||
|
|
6. その他検討事項
|
|||
|
|
- yield(ジェネレータ)
|
|||
|
|
- with文(リソース管理)
|
|||
|
|
- defer文(遅延実行)
|
|||
|
|
- assert文(デバッグ)
|
|||
|
|
|
|||
|
|
【質問】
|
|||
|
|
|
|||
|
|
1. switch/case vs when文、どちらがNyashに適している?
|
|||
|
|
- 予約語数への影響は?
|
|||
|
|
- Everything is Box哲学との整合性は?
|
|||
|
|
|
|||
|
|
2. 上記の機能候補の中で、本当に必須なものは?
|
|||
|
|
- 予約語10個制限を守りつつ実現可能?
|
|||
|
|
- 代替案はある?
|
|||
|
|
|
|||
|
|
3. Box型システムで解決できる機能は?
|
|||
|
|
- 例:ResultBoxでエラーハンドリング
|
|||
|
|
- 例:OptionBoxでnull安全性
|
|||
|
|
|
|||
|
|
4. 文法のシンプルさを保ちながら実用性を確保する方法は?
|
|||
|
|
|
|||
|
|
【理想】
|
|||
|
|
- 予約語は最小限(できれば10個維持)
|
|||
|
|
- Everything is Box哲学に忠実
|
|||
|
|
- 実用的でif文地獄を避けられる
|
|||
|
|
- 初学者にも分かりやすい
|
|||
|
|
|
|||
|
|
プログラミング言語設計の観点から、必須機能の優先順位と実装方法を提案してください。
|