Variable Länge der Funktionsargumentliste in Erlang

8

Ist es möglich, Funktionen mit Argumentlisten variabler Länge zu definieren?

Ich weiß, ich kann nur schreiben:

%Vor%

Aber ich möchte diese Technik vermeiden.

    
Dawid Fatyga 07.12.2009, 00:29
quelle

2 Antworten

8

Eine Möglichkeit besteht darin, alle Argumente in einer Liste zu übergeben:

function(ListOfParameters)

und dann können Sie über die genannte ListOfParameters iterieren. Auf diese Weise können Sie Ihre Funktionsdeklaration in die Lage versetzen, eine beliebige Anzahl von "Parametern" zu akzeptieren, fügen Sie einfach weitere Begriffe zu der Deklaration hinzu ... aber ich bin nicht sicher, ob Sie das gehofft haben. Denken Sie an eine C vararg -Parameterliste? Im positiven Fall lesen Sie den nächsten Absatz.

Sie müssen sich daran erinnern, dass Erlang auf dem Mustervergleich basiert. Die Argumente in der Funktion "Deklaration" dienen als übereinstimmendes Muster, wenn eine Funktion aufgerufen wird. Du musst deine "prozedurale Programmierung" -Macht verlassen , um Erlangs Macht voll zu nutzen.

    
jldupont 07.12.2009, 00:41
quelle
8

Um deutlich expliziter zu sein als @jldupont: Nein!

Es ist nicht so, dass es nicht einfach implementiert wurde, aber in Erlang Funktionen mit dem gleichen Namen aber unterschiedliche Anzahl von Argumenten werden als verschiedene Funktionen betrachtet, so dass es nicht hinzugefügt werden kann.

    
rvirding 07.12.2009 13:37
quelle

Tags und Links