AR
Stream.unfold({0, 1}, fn {curr, next} -> {curr, {next, next + curr}} end)
Size: a a a
AR
Stream.unfold({0, 1}, fn {curr, next} -> {curr, {next, next + curr}} end)
AR
AR
AB
AB
PG
LL
elixir/erlang
достаточно императивные в мире функциональных языковPG
LL
concurrency
паттерны, которые удобно и идиоматично заменяют большие и сложные стримыAR
AR
LL
beam
вообще с любой мемоизацией всё очень плохо. Единственные нестрашные мемоизации которые я знаю - это через process dictionary
в рамках одного процесса или через Cachex
в рамках системыPG
AR
beam
вообще с любой мемоизацией всё очень плохо. Единственные нестрашные мемоизации которые я знаю - это через process dictionary
в рамках одного процесса или через Cachex
в рамках системыAR
LL
LL
elixir
-ах. А то даже со всеми лимитациями beam
-а текущая реализация всё равно сосёт, я уверен можно и лучшеАЮ
defmodule Player doЧто указать вместо
schema "players" do
field(:id, :integer)
field(:gender, Gender)
end
end
defmodule Gender do
use Ecto.Type
def cast(:male), do: 1
def cast(:female), do: 2
def load(1), do: :male
def load(2), do: :female
end
query = from p in Player,
where: p.gender = ???
select: p
???
? Варианты :male
и 1
не работают. Доки читал, книжки скачивал, у гугла спрашивал, все молчат.where: p.gender == ^:male
.V
where: p.gender == ^:male
.where fragment("?", p.gender) == type(^:male, p.gender)но и твой вариант попробую.
АЮ