owaisqayum
Calling a function inside other function
Hi,
I am having three functions and the data inputs to only one of them. Lets say i have a function A having two parameters a and b. The sum operation is going inside.
def sum(a, b), do: a + b
Then in the second function, I want to add ten to the result of sum(a, b). So i can simply do like
def sum(a, b) do
a + b
|> add()
end
and then define add.
def add(sum) do
sum + 10
end
Now, my question is that how can I use this sum function and add functions separately. let’s say in a third function I want to take the product of sum and add function. Right now I can’t use them as the sum function is always calling the add function.
def product() do
# code here
add * sum
end
First Post!
LostKobrakai
Most Liked
kokolegorille
kokolegorille
I was writing one last night…
Maybe it can help You.
defmodule EventStore.Core.ListenersProvider do
use GenServer
require Logger
@name __MODULE__
def start_link(_) do
GenServer.start_link(@name, nil, name: @name)
end
def register(pid, filter_fun \\ fn _ -> true end)
def register(pid, filter_fun) when is_function(filter_fun) do
GenServer.call(@name, {:register, pid, filter_fun})
end
def unregister(pid) do
GenServer.cast(@name, {:unregister, pid})
end
def get_listeners do
@name
|> :ets.match_object({:"$1", :"$2", :_})
|> Enum.map(fn {pid, filter_fun, _ref} -> {pid, filter_fun} end)
end
def stop, do: GenServer.cast(@name, :stop)
@impl GenServer
def init(_) do
Logger.debug(fn -> "#{@name} is starting}" end)
#
Process.flag :trap_exit, true
:ets.new(@name, [:set, :protected, :named_table])
{:ok, nil}
end
@impl GenServer
def handle_call({:register, pid, filter_fun}, _from, _state) do
ref = Process.monitor(pid)
:ets.insert_new(@name, {pid, filter_fun, ref})
{:reply, :ok, nil}
end
@impl GenServer
def handle_cast({:unregister, pid}, _state) do
case :ets.match(@name, {pid, :_, :"$1"}) do
[[ref]] when is_reference(ref) -> Process.demonitor(ref)
_ -> nil
end
:ets.delete(@name, pid)
{:noreply, nil}
end
@impl GenServer
def handle_cast(:stop, _state), do: {:stop, :normal, nil}
@impl GenServer
def handle_info({:DOWN, _ref, :process, pid, _status}, _state) do
:ets.delete(@name, pid)
{:noreply, nil}
end
@impl GenServer
def terminate(reason, _state) do
Logger.debug(fn -> "#{@name} is stopping : #{inspect reason}" end)
#
:ets.delete(@name)
:ok
end
end
1
Last Post!
owaisqayum
Popular in Questions
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
I have VueJS GUIs with the project generated using Webpack.
I have Elixir modules that will need to be used by the VueJS GUIs.
I forese...
New
There are pre-rolled solutions for other frameworks that do work. However, Phoenix does not seem to have these. Have people had good expe...
New
About me? ( if you have nothing better to do than reading about some random guy in the internet :stuck_out_tongue: )
Hello all, this is ...
New
I am constructing a JSON object (map) and I need to conditionally set a field. I’m trying to write proper elixir-way code… and I’m at a l...
New
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1]
15:22:35.803 [error] gen_event {lager_file_backend...
New
Other popular topics
Hi folks,
Few months ago I have announced the proof-of-concept of the library to manipulate the browsers DOM objects directly from Elixi...
New
Lets say I have map like this fetching from my database
%{"_id" => #BSON.ObjectId<58eb1a7a9ad169198c3dXXXX>, "email" => ...
New
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
This post is a wiki (feel free to hit the edit button near the bottom right of this post to add your own changes!)
This post collects co...
New
Surface is an experimental library built on top of Phoenix LiveView and its new LiveComponent API that aims to provide a more declarative...
New
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #elixirconf-us
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #security
- #hex









