Per provare Netwire, sto implementando Pong utilizzando la libreria. Nel codice ho un cavo a sfera e un cavo a paddle per computer, e dal momento che dipendono l'uno dall'altro per alcuni valori, ho riscontrato problemi con loop infiniti. Alcuni pseudo-codice per spiegare:Netwire fili reciprocamente dipendenti
ball :: Wire() IO GameInput Ball
ball = (... define ball ...) . pcPaddle
pcPaddle :: Wire() IO GameInput Paddle
pcPaddle = (... define pcPaddle ...) . ball
La cosa da notare è che prendono l'un l'altro per gli ingressi. Ho cercato di alleviare questo eseguendo le operazioni seguenti:
ball :: Wire() IO GameInput Ball
ball = (...) . delay (... base paddle init ...) . pcPaddle
e altre varianti di utilizzare la funzione delay
in questi due fili, ma sto ottenendo l'errore <<loop>>
runtime indipendentemente.
Come inizializzare uno dei fili in modo che questo sistema possa funzionare?