я должен иметь следующие функции:Функция рекурсии, когда он не
followConnections :: [Connection]->Crib->Stecker->Offsets->Maybe Stecker
followConnections [] _ y _ = Just (y)
followConnections w x y z
| fC /= Nothing = trace("Follow Connections recursing") followConnections (tail w) x (fromMaybe(fC)) z
| fC == Nothing = trace("Follow connections fail! for " ++ show y) Nothing
where
fC = followConnection (head w) x y z
Технически, функция должна рекурсии, если текущий элемент [Connection]
не вызывает followConnection
вернуть Nothing
или вернуть Nothing
иначе. Однако, отслеживая функцию, я увидел, что она будет возвращаться до тех пор, пока [Connection]
не будет пуст, даже в какой-то момент он терпит неудачу.
Любая идея, почему это может быть?
Спасибо!
Просто угадайте. Используется ли 'followConnection' (без« s »)' followConnections' (с «s»)? Или 'followConnections' вызывается более одного раза, так что вывод второго вызова выглядит как продолжение первого? – jamshidh
заменить «followConnection» на Nothing. Он рекурсирует? Ищите вызов 'followConnections' из' followConnection' –
Если вы хотите получить помощь, укажите только код для воспроизведения вашей проблемы. –