Elixir~Enum 총자라이 3회~

# 여기까지의 개요

Elixir ~ Enum 총자 2회 ~ 의 계속입니다.

Enum.drop



Enum.drop([1, 2, 3], 2)
[3]

Enum.drop([1, 2, 3], 10)
[]

Enum.drop([1, 2, 3], 0)
[1, 2, 3]

Enum.drop([1, 2, 3], -1)
[1, 2]

Twitter에서 "drop은 총합이 아니라 지정한 index만 요소를 떨어뜨리는 함수예요.
마이너스 인덱스는 루비의 관습이고 -1은 마지막 인덱스를 가리킵니다. "
와의 조언을 받았습니다.

즉, 0부터 세어 n번째보다 요소를 떨어뜨리고 있다...?
-1이면 3을 생략하고 1,2를 반환합니다 ...?

정확한 해석은 다소 먼 것 같습니다.

Enum.drop_every


Enum.drop_every(1..10, 2)
[2, 4, 6, 8, 10]

Enum.drop_every(1..10, 0)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Enum.drop_every([1, 2, 3], 1)
[]

첫 번째 표현식은 1에서 10으로 2의 배수 숫자를 모두 반환하는 것 같습니다.
두 번째 표현식은 두 번째 인수가 0이므로 목록의 모든 숫자를 반환합니까?
이것 역시 3번째 식으로 지금까지의 가정이 무너져 버립니다.

이것도 역시 노리로서 영문의 문서는 읽을 수 있습니다만

drop_while


Enum.drop_while([1, 2, 3, 2, 1], fn x -> x < 3 end)
[3, 2, 1]
Enum.drop_while([1, 2, 3, 4, 2, 1], fn x -> x < 4 end)
[4, 2, 1]

여기까지 2개 연속으로 법칙성을 몰랐기 때문에 스스로 식을 만들어 이해를 깊게 해 보았습니다.
첫 번째 인수 목록 중 첫 번째 두 번째 인수의 숫자가 나온 후 목록의 나머지를 출력하는 함수 인 것 같습니다.
문서를 통해 전부 모르는 것이 아니므로 초조했다 ...

Enum.each


Enum.each(["some", "example"], fn x -> IO.puts(x) end)
"some"
"example"
:ok: 

Enum.each(["kento", "mizuno"], fn x -> IO.puts(x) end)
kento
mizuno
:ok


인수의 "some"과 "example"을 각각 돌려주고, 를 돌려주고 있는 것 같습니다.
자작의 식에서도 대체로 같은 거동이군요.

Enum.empty?


Enum.empty?([])
true

Enum.empty?([1, 2, 3])
false

이것은 간단합니다. 인수가 비어 있으면 true, 어떤 요소가 있으면 false를 바꿉니다.

이런 식으로 며칠 안에 Enum의 함수를 모두 만져 볼 예정입니다.
으쓱, 최선을 다하겠습니다.
켄토 미즈노

좋은 웹페이지 즐겨찾기