У меня есть AST
, представляющая программу Haskell и список bitvector/Ий, представляющее присутствие строгости аннотации на Pattern
с в примере order.For, 1000
представляет собой программу с 4-х Pat
, где первым из них a BangPat
. Есть ли способ, который я могу включить и выключить аннотации в AST
согласно списку?почтового АСТ со списком BOOL
- EDIT: дополнительно уточнить, что я хочу editBang
сделать
На основании ответа user5042 в: Simple.hs :=
main = do
case args of
[] -> error "blah"
[!x] -> putStrLn "one"
(!x : xs) -> putStrLn "many"
И я хочу editBang "Simple.hs" [True, True, True, True]
производить
main = do
case args of
[] -> error "blah"
[!x] -> putStrLn "one"
(!(!x : !xs)) -> putStrLn "many"
Учитывая, что выше являются единственными 4 местами, которые могут появиться !
Ответ обновляется с рабочим примером. – ErikR
Обратите внимание, что '! Xs' не разрешено. У вас есть ваша работа, вырезанная для вас, так как во многих местах разрешены запреты, которые вы не рассматриваете, например. '! []' и '! [! x]', но они не допускаются в определениях верхнего уровня, например. '! main = ...' не допускается, хотя 'main' является шаблоном. В следующий раз будьте более откровенными о том, что вы хотите. – ErikR