Anonymous user
Call an object method: Difference between revisions
no edit summary
m (Corrected small problem with FreeBASIC program output) |
No edit summary |
||
Line 245:
<lang elena>
instance message &subj1:param1 &subj2:param2.
</lang>
=={{header|Elixir}}==
Elixir doesn't do objects. Instead of calling methods on object you send messages to processes. Here's an example of a process created with spawn_link which knows how to receive a message "concat" and return a result.
<lang elixir>
defmodule ObjectCall do
def new() do
spawn_link(fn -> loop end)
end
defp loop do
receive do
{:concat, {caller, [str1, str2]}} ->
result = str1 <> str2
send caller, {:ok, result}
loop
end
end
def concat(obj, str1, str2) do
send obj, {:concat, {self(), [str1, str2]}}
receive do
{:ok, result} ->
result
end
end
end
obj = ObjectCall.new()
IO.puts(obj |> ObjectCall.concat("Hello ", "World!"))
</lang>
|