खोज…


एक साधारण प्रक्रिया पैदा करना

निम्नलिखित उदाहरण में, greet मॉड्यूल के अंदर Greeter फ़ंक्शन एक अलग प्रक्रिया में चलाया जाता है:

defmodule Greeter do
    def greet do
        IO.puts "Hello programmer!"
    end
end

iex> spawn(Greeter, :greet, []) 
Hello
#PID<0.122.0>

यहां #PID<0.122.0> प्रक्रिया के लिए प्रक्रिया पहचानकर्ता है।

संदेश भेजने और प्राप्त करने

defmodule Processes do
    def receiver do
        receive do
            {:ok, val} ->
                IO.puts "Received Value: #{val}"
            _ ->
                IO.puts "Received something else"
        end
    end
end
iex(1)> pid = spawn(Processes, :receiver, [])
#PID<0.84.0>
iex(2)> send pid, {:ok, 10}
Received Value: 10
{:ok, 10}

पुनरावृत्ति और प्राप्त करें

कई संदेशों को प्राप्त करने के लिए पुनरावर्तन का उपयोग किया जा सकता है

defmodule Processes do
    def receiver do
        receive do
            {:ok, val} ->
                IO.puts "Received Value: #{val}"
            _ ->
                IO.puts "Received something else"
        end
        receiver
    end
end
iex(1)> pid = spawn Processes, :receiver, []
#PID<0.95.0>
iex(2)> send pid, {:ok, 10}
Received Value: 10
{:ok, 10}
iex(3)> send pid, {:ok, 42}
{:ok, 42}
Received Value: 42
iex(4)> send pid, :random
:random
Received something else

अमृत एक पूंछ-कॉल पुनरावृत्ति अनुकूलन का उपयोग करेगा जब तक कि फ़ंक्शन कॉल अंतिम चीज है जो फ़ंक्शन में होती है जैसा कि उदाहरण में है।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow