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>
 
Anonymous user