Il tipo String
di Haskell è un alias per [Char]
(cioè un elenco collegato di Char
s). Qualunque altra lingua usa un'implementazione di stringhe come questa?
Sì. Erlang fa lo stesso, così come molti altri linguaggi di programmazione funzionale.
L'utilizzo di stringhe come elenco di caratteri rende molto semplici la corrispondenza e la motivazione del modello. Tuttavia, le loro prestazioni sono relativamente negative:
Inoltre, Unicode, in cui un grafema potrebbe consistere di più caratteri, li ha resi ancora meno pratici, in quanto ciò rende di nuovo molto imprevedibile il pattern matching sui personaggi.
Spesso, questi linguaggi hanno anche altri modi per gestire stringhe più veloci, ma più difficili da manipolare. Ad esempio, Haskell ha il tipo Testo e Erlang ha i binari che possono essere trattati come stringhe.
La sintassi "abc"
in Prolog è in genere una notazione abbreviata per un elenco di codici carattere, ovvero [97,98,99]
, che è anche il caso in Erlang . Vedi questa domanda per i dettagli. Quando un'implementazione Prolog supporta un tipo di stringa personalizzato (ad es. ECLiPSe / SWI / YAP ), ci sono dei predicati da convertire da e verso elenchi di codici carattere.
Leggi altre domande sui tag data-structures strings haskell linked-list