1

次のおもちゃの例では、関数を呼び出して数値を非決定論的に計算しanyFunction、偶数の選択肢のみを保持します。偶数の選択肢の代わりに最大の選択肢を保持する同様のコードをどのように書くことができますか? 別のモナドスタック署名が必要ですか?

anyFunction :: StateT Int [] Int
anyFunction = undefined


test :: StateT Int [] Int
test = do
  s <- anyFunction
  put s
  v <- get
  if even v then return v else mzero
4

2 に答える 2