Size: a a a

2020 March 03

DR

Dmitry Russ (Aleksandrov) in ErlangRus
Поэтому это точно - не наследие рельс.
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Dmitry Russ (Aleksandrov)
В Erlang-е нет lazy вычислений встроенных, которые вообще очень функциональная вещь и идёт из haskell-я. У нас препод в университете рассказывал на функциональных языках лекции про Erlang, Haskell, так вот lazy вычисления в Erlang-е он делал со специальной библиотекой, потому что упустили такую чисто функциональную вещь, а в Elixir-е она встроенная.
Как сделать Stream.cycle из функции ?
источник

DR

Dmitry Russ (Aleksandrov) in ErlangRus
Ошибка здесь в том, что etf позволяет сохранять код для исполнения - и в эрланге, если использовать не lists:map, а свою функцию, которая на каком-то этапе тоже может запустить анонимную функцию - тоже будет проблема. В Erlang-е это чуть отложеная, не такая явная проблема.
источник

PG

Pïg Grëënëst in ErlangRus
как стратегия вычисления может быть "чисто функциональной"?
источник

DR

Dmitry Russ (Aleksandrov) in ErlangRus
А в Elixir-е есть самый безопасный вариант. Т.е. С использованием той функции - Elixir безопаснее Erlang-а в этом случае.
источник

DR

Dmitry Russ (Aleksandrov) in ErlangRus
Źmićer Rubinštejn
Как сделать Stream.cycle из функции ?
Stream.cycle - возвращает функцию.
источник

ŹR

Źmićer Rubinštejn in ErlangRus
А блин, ясно
источник

DR

Dmitry Russ (Aleksandrov) in ErlangRus
Pïg Grëënëst
как стратегия вычисления может быть "чисто функциональной"?
Lazy вычислений, на этом весь haskell построен. Там только Lazy вычисления и есть.
источник

PG

Pïg Grëënëst in ErlangRus
можно взять и все зафорсить, есть компилятор строгого хаскеля, что дальше?
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Dmitry Russ (Aleksandrov)
Stream.cycle - возвращает функцию.
Ну это все равно косяк
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Нужно чтобы Stream.сycle возвращал %StreamGenerator{} какой нибудь, на котором определен протокол
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Это такая детская херня, что даже смешно
источник

DR

Dmitry Russ (Aleksandrov) in ErlangRus
Źmićer Rubinštejn
Нужно чтобы Stream.сycle возвращал %StreamGenerator{} какой нибудь, на котором определен протокол
Stream.resource
источник

DR

Dmitry Russ (Aleksandrov) in ErlangRus
И вся идея с протоколами уже не будет работать.
источник

DR

Dmitry Russ (Aleksandrov) in ErlangRus
Если только в этой структуре не хранить анонимную функцию.
источник

DR

Dmitry Russ (Aleksandrov) in ErlangRus
Только подставить вместо анонимной функции структуру с анонимной функцией - не меняет суть проблемы.
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Dmitry Russ (Aleksandrov)
Если только в этой структуре не хранить анонимную функцию.
Ну ты же делаешь алиасы для типов (`name :: string`), а не используешь просто string
Потому что name то string, да вот string - не name
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Так и тут - генератор то функция, да вот функция - не генератор
источник

DR

Dmitry Russ (Aleksandrov) in ErlangRus
Źmićer Rubinštejn
Ну ты же делаешь алиасы для типов (`name :: string`), а не используешь просто string
Потому что name то string, да вот string - не name
name :: string - это ты ставишь тип, а не передаешь вместо name = "Jose" что-то типа name = %Name{this = "Jose"}.
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Dmitry Russ (Aleksandrov)
name :: string - это ты ставишь тип, а не передаешь вместо name = "Jose" что-то типа name = %Name{this = "Jose"}.
Главное - принцип, ЗАЧЕМ ты это делаешь. А делаешь это доступными инструментами.

В эликсире протокол можно определить на структуре, а не на типе. Потому ничего не остается кроме как обернуть в структуру
источник