Learning and using language via recursive pragmatic reasoning about other agents