While-Loops가 Elixir를 사용하지 않는 이유는 무엇입니까?
6521 단어 elixir
While-Loops가 Elixir를 사용하지 않는 이유는 무엇입니까?
Se você já trabalhou com linguagens imperativas, decidiu mergulhar de cabeça nesta linguagem maravilhosa que é Elixir, você provavelmente já deve ter se perguntado como funcionam loops. Mas, será que realmente precisamos deles?
Elixir é uma linguagem funcional, o estado é imutável. Ela não possui estruturas básicas para loop como
for
또는 while
de linguagens imperativas convencionais. Veremos algumas alternativas muito interessantes para trabalhar.이해력 활용
Utilizando comprehensions podemos criar códigos mais concisos para criar iterações.
iex> for n <- 1..10, do: n * 2
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
Podemos observar a primeira parte dessa estrutura, o que chamamos de generators:
n <- 1..10
. Em seguida nós multiplicamos a variável n
por 2, e temos este resultado: [2, 4, 6...]
.Também conseguimos aplicar essa estrutura de
for
com listas aplicando generators.iex> lista = [1, 2, 3, 4, 5]
iex> for n <- lista, do: rem(n)
[false, true, false, true, false]
Note que aplicamos a lista que definimos no generator para iterá-la, e em seguida verificamos se cada item dessa lista é par.
Iterando listas
Com a função
each/2
Conseguimos iterar uma coleção de valores sem criar uma lista.iex> lista = [1, 2, 3, 4, 5]
iex> Enum.each(lista, fn(n) -> IO.puts rem(n, 2) == 0 end)
false
true
false
true
false
:ok
Seguindo o mesmo example utilizado no último tópico, verificamos se cada item da lista é par. Porém, o retorno dessa função é apenas um átomo
:ok
.Já com a função
map/2
Conseguimos produzir uma nova lista.iex> lista = [1, 2, 3, 4, 5]
iex> Enum.map(lista, fn(n) -> rem(n, 2) == 0 end)
[false, true, false, true, false]
Aplicando a mesma logica, nós temos um resultado semelhante ao primeiro de example utilizando comprehension.
활용 매크로
메타프로그래밍은 Imperativas의 언어를 While-Loop에서 사용할 수 있도록 Elixir를 사용하지 않습니다. 필요하지 않은 모든 것.
결론
중앙 주제에 대한 응답 é: não. Temos maneiras mais inteligentes e eficazes para trabalhar com listas e mapas.
Reference
이 문제에 관하여(While-Loops가 Elixir를 사용하지 않는 이유는 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/tyde81/precisamos-utilizar-while-loops-no-elixir-36b7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)