In Erlang è stato stabilito un ordinamento dei tipi di dati di base incorporati:
number < atom < reference < fun < port < pid < tuple < list < bit string
Ciò significa che è possibile ordinare un elenco con una varietà di tipi di dati diversi. ( [1, 2, 'foo', 42, {3}, 1]
diventa [1, 1, 2, 42, {3}, 'foo']
)
Tuttavia, mi sembra molto controintuitivo avere questo comportamento definito: solitamente, quando si tratta di un enumerabile che ha più tipi diversi di dati, utilizzerei una funzione personalizzata in modo che l'ordine sia esattamente come voglio.
Mi aspetto che un numero non possa essere confrontato (in ordine) con le stringhe. In molti altri linguaggi di programmazione questo è vero e genererà un errore.
Perché Erlang fornisce questo ordinamento dei tipi di dati di base?