오랫동안 파이썬 사용자로서 Elixir를 좋아하는 이유

3396 단어 elixir
Discord는 API에 Python을 사용하고 채팅 기능에 ELixir를 사용합니다realtime. 기능적 프로그래밍 언어는 일상적인 사용에 적합하지 않지만 Elixir는 아름답습니다. 여기 몇 가지 묵상이 있습니다.

> rem(4, 3)
1


모듈로에서 출발하는 것은 매우 깔끔합니다. 나머지를 원하십니까? 렘을 사용하세요!

비교 규칙도 명확하게 철자되어 있습니다. 놀라운!

number < atom < reference < function < port < pid < tuple < map < list < bitstring


이상한 f 문자가 없는 문자열 형식화를 환영합니다!

"Hello #{world_var}"


그러나 <>를 사용한 연결은 이상합니다.
["a"] ++ ["b"] 확실히 Python 느낌을 줍니다["a"] + ["b"].

지도가 복잡하지만dict = %{:x => "a", "y" => :z} 접근이 편합니다:dict["hello"]
iterables는 더 명확할 수 있습니다. 끝 문이 저를 괴롭힙니다: Enum.any?(["a", "aa", "aaa"], fn(s) -> String.length(s) == 3 end).는 fn 호출에서 성가시다sum.(2, 3).

파이프 오퍼레이터는 정말 멋져요!
fucntion() |> decorator()
문서화는 독스트링과 매우 흡사합니다.

defmodule Hello do
  ...
  @doc """

  """


이해를 위해 언제든지 in 키워드를 선호합니다.
for x <- list, do: x+2
필터링이 깔끔하네요
for x <- 1..100,
is_even(x),
rem(x, 3) == 0, do: x
파이썬에서 우리가 할 수 있는 것 같아요 [x for x in range(1, 100) if combined_conditions(x)]<<int>>를 사용하여 바이트를 나타내는 것은 기본적으로 매우 흥미로운 일입니다.

레이즈 사용도 매우 파이썬적입니다raise ArgumentError, message: "the argument value is invalid".

Concurreny도 이상하게 간단합니다.

defmodule Example do
  def listen do
    receive do
      {:ok, "hello"} -> IO.puts("World")
    end

    listen()
  end
end

pid = spawn(Example, :listen, [])
#PID<0.108.0>


또한 Erlang보다 훨씬 친숙하고 Haskell보다 읽기 쉽습니다!

좋은 웹페이지 즐겨찾기