tuplas then else delete atom erlang punctuation

then - En Erlang, ¿cuándo uso? o o.?



p erlang (5)

Periodo (.)

En los módulos, el período se usa para terminar los atributos del módulo y las declaraciones de funciones (también conocidas como ''formas''). Puede recordar esto porque los formularios no son expresiones (no se devuelve ningún valor de ellos) y, por lo tanto, el período representa el final de una declaración.

Tenga en cuenta que las definiciones de funciones con diferentes aridades se consideran declaraciones separadas, por lo que cada una terminaría por un período.

Por ejemplo, las definiciones de funciones para hello/0 y hello/1:

hello() -> hello_world. hello(Greeting) -> Greeting.

(Tenga en cuenta que en el shell erlang el período se usa para terminar y evaluar expresiones, pero eso es una anomalía).

Punto y coma (;)

El punto y coma actúa como un separador de cláusulas, tanto para las cláusulas de función como para las ramas de expresión.

Ejemplo 1, cláusulas de función:

factorial(0) -> 1; factorial(N) -> N * fac(N-1).

Ejemplo 2, ramas de expresión:

if X < 0 -> negative; X > 0 -> positive; X == 0 -> zero end

Coma (,)

La coma es un separador de expresiones. Si una coma sigue a una expresión, significa que hay otra expresión después de ella en la cláusula.

hello(Greeting, Name) -> FullGreeting = Greeting ++ ", " ++ Name, FullGreeting.

He estado tratando de aprender Erlang y he tenido algunos problemas con el final de las líneas en funciones y declaraciones de casos.

Es decir, ¿cuándo uso un punto y coma, una coma o un período dentro de mis funciones o declaraciones de caso?

Tengo cosas para trabajar, pero realmente no entiendo por qué y estaba buscando un poco más de información.


Coma al final de una línea de código normal.
Punto y coma al final de la declaración del caso de caso, o si es una declaración, etc. El último caso o si la declaración no tiene nada al final. Un punto al final de una función.

Ejemplo (perdón por los nombres de variables aleatorias, claramente esto no hace nada, pero ilustra un punto):

case Something of ok -> R = 1, %% comma, end of a line inside a case T = 2; %% semi colon, end of a case, but not the end of the last error -> P = 1, %% comma, end of a line inside a case M = 2 %% nothing, end of the last case end. %% period, assuming this is the end of the function, comma if not the end of the function


La coma separa expresiones, argumentos o elementos de una lista / tupla o binario. Está sobrecargado de trabajo.


Me gusta leer el punto y coma como OR, la coma como AND, el punto final como END. Asi que

foo(X) when X > 0; X < 7 -> Y = X * 2, case Y of 12 -> bar; _ -> ook end; foo(0) -> zero.

lee como

foo(X) when X > 0 *OR* X < 7 -> Y = X * 2 *AND* case Y of 12 -> bar *OR* _ -> ok end *OR* foo(0) -> zero *END*

Esto debería dejar claro por qué no hay; Después de la última cláusula de un caso.


Puedes considerarlo como una puntuacion inglesa. Las comas se usan para separar cosas en una serie, los puntos y comas se usan para separar dos cláusulas independientes muy relacionadas [1] (por ejemplo, los diferentes casos de la declaración del caso, las cláusulas de función del mismo nombre y aridad que coinciden con diferentes patrones) y los puntos Se usan para terminar una oración (pensamiento completo).

  1. O para demostrar que fuiste a la universidad. "No uses puntos y coma. Son hermafroditas travestis que no representan absolutamente nada. Todo lo que hacen es demostrar que has estado en la universidad". -- Kurt Vonnegut