Size: a a a

Язык программирования Julia / Julia programming language

2020 April 10

RS

Roman Samarev in Язык программирования Julia / Julia programming language
технически это не ограничение языка. Просто нужен второй комплект стандартных методов под lazy
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Хм, ну, можно допилить Transducers, добавить в него макрос @lazy, который будет брать цепочку вида

x |> y -> filter(z -> z %2 == 0, y) |> y -> filter(z -> z %3 == 0, y)

и превращать её в
Filter(z -> z % 2 == 0) |> Filter(z -> z % 3 == 0)
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Вроде бы макросы могут с этим вполне справиться.
Вот и будет способ, как любой конвеер функций превратить в трансдьюсер.
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
И не надо ничего в базе переделывать.
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
я не использовал Transducers. Если они уже подготовили комплект структур, аналогичных методам базовой библиотеки, то да, можно попробовать переделать
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Из плюсов кстати то, что многие операции идут уже со встроенным параллелизмом.
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
следующий шаг - параллелить на кластер
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Плюс есть eduction https://tkf.github.io/Transducers.jl/stable/manual/#Transducers.eduction, который позволяет поднять любой итератор до трансдьюсера.
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
а вообще, надо посмотреть. Может получиться кластерный потоковый процессор
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
То есть формально, то, чего нет в готовом варианте можно вытащить из уже имеющегося.
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
нарушается единство синтаксиса 🙂
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Или шашечки или ехать 😊))
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
в нынешнем виде, думаю, что Transducers - довольно сырая библиотека. Его очень интенсивно бросились писать
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Дык опен сорс.
Используй, найди баги, поставь issue, исправь.
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Все будут счастливы.
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Сама собой библиотека не заматереет (как по русски будет mature? )
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Проблема курицы и яйца
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
ядро должно быть стабильным. Иначе есть риск, что при использовании в своём проекте, на следующий месяц не соберешься с библиотекой, участие в написании которой сам и принимал
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
Есть ныне заброшенная библиотека  https://github.com/IntelLabs/HPAT.jl. Так вот, можно попробовать допилить Transducers на её замену
источник