List objects and recursive algorithms in elementary topoi