こんにちは、一つ質問をさせてください!
現在型安全に状態遷移を表現する方法について悩んでいます。
理解が足りず、実現する手がかりがありません……
型安全な状態遷移をするのに必要なことは
• 型に次の状態を入れ込む
• 関数のシグネチャで、特定の遷移先の情報を持っている型のみ引数に取るようにする
だと考えているのですが、どのように状態の型を定義すればいいか少々混乱しています。なにかお力添えいただけないでしょうか?
現在型安全に状態遷移を表現する方法について悩んでいます。
data State = Ready 'StateA -- 型の上で次の状態を指定すれば、型安全な状態遷移を実現できるのではないか | StateA [Text] 'StateB | StateB [Text] 'Finished | Finished [Text] '() toStateA :: State -> Text -> State -- この型上で何かしらパターンマッチングをしないといけない? toStateA (Ready 'StateA) text = -- 値でパターンマッチングをすることはできない StateA [text]
理解が足りず、実現する手がかりがありません……
型安全な状態遷移をするのに必要なことは
• 型に次の状態を入れ込む
• 関数のシグネチャで、特定の遷移先の情報を持っている型のみ引数に取るようにする
だと考えているのですが、どのように状態の型を定義すればいいか少々混乱しています。なにかお力添えいただけないでしょうか?