Praktische Verwendung von falschen Listen in Erlang (vielleicht alle funktionalen Sprachen)

8

Ich habe Erlang und OTP in Aktion gelesen und bin auf eine Frage bezüglich falscher Listen gestoßen.

  

Seien Sie nicht versucht, Listenzellen zu verwenden   auf diese Weise, selbst wenn Sie denken, Sie haben eine   schlaue Idee - es ist fehleranfällig und   verwirrt sowohl Menschen als auch Programm   Analysewerkzeuge. Das heißt, es gibt   ein oder zwei gültige Verwendungen zum Erstellen   falsche Listen, aber sie werden berücksichtigt   fortgeschrittene Programmiertechniken und   sind über den Rahmen dieses Buches hinaus.

Außerhalb des Rahmens für das Buch? Es muss perfekt für Stackoverflow sein!
Also meine Frage ist natürlich, was wären einige gültige Anwendungen?

    
Tjelle 23.02.2011, 08:35
quelle

4 Antworten

6

Eine von der Erlang-Dokumentation vorgeschlagene Verwendung ist gefälschte faule Listen :

%Vor%     
Alexey Romanov 23.02.2011, 10:49
quelle
4

Eine gültige Verwendung wird am Ende des Eunit-Benutzerhandbuchs in der Abschnitt über faule Generatoren. Dieses Codebeispiel soll eine sehr lange Liste erstellen, die jeweils ein Element verbraucht. Anstatt also die gesamte Liste auf einmal zu erstellen, erstellt sie eine falsche Liste, deren Ende beschreibt, wie der Rest der Liste generiert wird:

%Vor%

Mit anderen Worten, es ist eine faule Liste, die Erlang dir selbst nicht gibt.

    
legoscia 23.02.2011 10:49
quelle
4

OTP-stdlib-Wörterbuchimplementierung Das dict-Modul verwendet falsche Listen für Schlüssel / Wert-Paare. Die Rechtfertigung ist 2-Tupel verwendet 1 Wort mehr Speicher als 2-Element unangebrachte Liste. Sehen Effizienzleitfaden für Details

    
probsolver 23.02.2011 11:10
quelle
0

Das OTP-Standardmodul digraph für gerichtete Graphen verwendet falsche Listen für markierte Vertex- und Kantenbezeichner. Zum Beispiel würde Vertex 42 als ['$ v' | 42] identifiziert werden, was ein Paar eines Atoms (nein, kein Zeichenliteral!) Und eine ganze Zahl bedeutet, ähnlich wäre die Kante 97 ['$ e' | 97 ].

    
mikhailfranco 18.05.2016 05:23
quelle