Perché la documentazione in alcune lingue dice "equivalente a" piuttosto che "è"?
Ad esempio, dicono i documenti Python
itertools.chain(*iterables)
...
Equivalente a:
def chain(*iterables): # chain('ABC', 'DEF') --> A B C D E F for it in iterables: for element in it: yield element
O questo riferimento C ++ su find_if
:
Il comportamento di questo modello di funzione è equivalente a:
template<class InputIterator, class UnaryPredicate> InputIterator find_if (InputIterator first, InputIterator last, UnaryPredicate pred) { while (first!=last) { if (pred(*first)) return first; ++first; } return last; }
Se questo non è il vero codice, non possono pubblicarlo? E se è il codice attuale, perché devono dire che è "equivalente" piuttosto che semplicemente "è"?
chain
è implementato direttamente in C, quindi è "equivalente" a quel codice Python perché produce lo stesso risultato, ma evita un po 'di sovraccarico nell'interpretare che bytecode.
find_if
è "la" documentazione per C ++. Se lo fosse, il cast (che vedi nella risposta sotto) sarebbe sbagliato.bool