2009-12-07 9 views

Respuesta

8

Una forma de hacerlo es pasar todos los argumentos en una lista:

function(ListOfParameters)

y luego se puede iterar sobre dicha ListOfParameters. De esta forma, puede hacer que su declaración de función sea capaz de aceptar cualquier cantidad de "parámetros", solo agregue más términos a la declaración ... pero no estoy seguro de que eso sea lo que esperaba. ¿Estás pensando en una lista de parámetros C vararg? En el caso positivo, lea el siguiente párrafo.

Debe recordar que Erlang se basa en la coincidencia de patrones. Los argumentos en la función "declaración" sirven como patrón coincidente cuando se invoca una función. Tendrá que llamar al dejando de lado su mentalidad de "programación de procedimientos" con el fin de aprovechar por completo la potencia de Erlang.

+0

Primera parte de Su respuesta es la misma que la técnica que mencioné, pensé en algo similar a C, así que leí la segunda parte, así que ahora tengo que recurrir a mi primera solución. ¡Gracias por responder! –

+0

¡Es un placer! Diviértete con Erlang! – jldupont

+0

¿Qué sería lo mejor para hacer esto, si quisiera una lista de argumentos variable, y luego tendría que ejecutar otra función mientras pasa la lista de variables de argumentos a esta otra función? – CMCDragonkai

8

Para ser mucho más explícito que @jldupont: ¡No!

No es que simplemente no se haya implementado, pero en las funciones de Erlang con el mismo nombre pero diferentes números de argumentos se consideran funciones diferentes, por lo que no se puede agregar.

+0

¿Hay alguna forma de dividir una lista de argumentos y aplicar cada argumento a una función? – CMCDragonkai

+0

@CMCDragonkai ¿Quiere decir aplicar la misma función a cada elemento? Para ese uso: 'lists: map' o list comprehensions para obtener una lista de resultados; o 'lists: foldl' para doblar los valores de retorno en la llamada al siguiente elemento de la lista. – rvirding

+0

En realidad, si se le da una lista de argumentos, quiero llamar a otra función y pasar la lista como el conjunto de argumentos. En Elixir, hay 'aplicar'. – CMCDragonkai

Cuestiones relacionadas