Aby wypróbować Netwire, wdrażam Ponga przy użyciu biblioteki. W kodzie mam drut kulkowy i komputerowy drut wiosło, a ponieważ zależą od siebie nawzajem dla niektórych wartości, mam problemy z nieskończonymi pętlami. Niektóre pseudokoduły do wyjaśnienia:Druty wzajemnie zależne od Netwire
ball :: Wire() IO GameInput Ball
ball = (... define ball ...) . pcPaddle
pcPaddle :: Wire() IO GameInput Paddle
pcPaddle = (... define pcPaddle ...) . ball
Należy zwrócić uwagę, że wzajemnie się przyjmują. Próbowałem złagodzić to w następujący sposób:
ball :: Wire() IO GameInput Ball
ball = (...) . delay (... base paddle init ...) . pcPaddle
i inne odmiany za pomocą funkcji w tych dwóch przewodów delay
, ale dostaję błąd <<loop>>
wykonania niezależnie.
Jak zainicjować jeden z przewodów, aby ten system mógł działać?