I’m trying to redo a piece of Erlang code in Elixir:
odd_parity(N) ->
Set = length([1 || <<1:1>> <= <<N>>]), % how does this translate?
Set rem 2 == 1.
defp _odd_parity(n) do
lst = for <<r::1 <- n>>, do: r
set = length([1 || lst ])
rem(set, 2) == 1
end
Please how would the commented line above translate?
1 Like
kip
2
I think you will find this stack overflow post to be helpful in translating the required syntax for binary comprehensions.
4 Likes
Thanks, solved.
def _odd_parity(n) do
l = for <<(r::1 <- <<n>>)>>, r == 1, do: r
rem(Enum.count(l), 2) == 1
end
You can use Efe (Elixir Flavoured Erlang).
It is a Erlang → Elixir transpiler
The project is awesome!
This is what generates
def odd_parity(n) do
set =
length(
for <<(<<1::size(1)>> <- <<n>>)>> do
1
end
)
rem(set, 2) == 1
end
7 Likes
This is really cool! Thanks.