Jump to content

Ludic numbers: Difference between revisions

→‎{{header|Elixir}}: used Enum.drop_every
(→‎{{header|Elixir}}: used Enum.drop_every)
Line 1,000:
 
=={{header|Elixir}}==
{{works with|Elixir|1.3.1}}
<lang elixir>defmodule Ludic do
def numbers(n \\ 100000) do
Line 1,008 ⟶ 1,009:
defp numbers(list, nums) when length(list) < hd(list), do: Enum.reverse(nums, list)
defp numbers([h|_]=list, nums) do
Enum.with_indexdrop_every(list, h) |> numbers([h | nums])
|> Enum.filter_map(fn{_,i} -> rem(i,h)!=0 end, fn{n,_} -> n end)
|> numbers([h | nums])
end
Line 1,017 ⟶ 1,016:
IO.puts "Below 1000: #{length(numbers(1000))}"
tuple = numbers(25000) |> List.to_tuple
IO.puts "2000..2005th: #{ inspect Enum.map(for i <- 1999..2004, fn i ->do: elem(tuple, i) end) }"
ludic = numbers(250)
triple = for x <- ludic, x+2 in ludic, x+6 in ludic, do: [x, x+2, x+6]
IO.puts "Triples below 250: #{inspect triple, char_lists: :as_lists}"
end
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.