Confuso sobre diagramas de switches Yampa
Existem alguns diagramas de switches Yampa em:
http://www.haskell.org/haskellwiki/Yampa/switch
http://www.haskell.org/haskellwiki/Yampa/rSwitch
http://www.haskell.org/haskellwiki/Yampa/kSwitch
(e assim por diante).
Eu descobri que oswitch
, o único diagrama com descrição, é o mais fácil de entender. Os outros parecem difíceis de seguir os símbolos semelhantes para ler os diagramas. Por exemplo, para tentar ler orSwitch
com os símbolos usados noswitch
talvez:
Seja um SF recursivo que sempre recebe um sinal do tipo 'in' e retorna um sinal do tipo 'out'. Comece com um SF inicial do mesmo tipo, mas alguém fora da função switch (o quadrado [?]) Também pode passar um novo SF por meio de um Event (o tipoEvent (SF in out)
na assinatura) enquanto a condição estiver satisfeita (para o '?' antes da praça [cond]). No caso do evento, o Yampa usaria o novo SF em vez do existente. Esse processo é recursivo, já que '?' (não é possível obtê-lo no diagrama, exceto que a assinatura do rSwitch parece recursiva).
E depois de olhar para a fonte derSwitch
, parece que ele usaswitch
alternar para o mesmo init SF recursivamente enquanto ot
é acionado (de acordo com o descrito no diagrama, embora eu não veja qual é ot
seria disparado no código fonte).
No Yampa Arcade, explica odpSwitch
com o código e o exemplo. E o artigo sobre o jogo 'Frag' também usadpSwitch
. No entanto, orSwitch
parece ausente neste tutorial. Então, eu realmente não sei usarr-
ou ok-
comutadores seriais e em que casos precisaríamos deles.