Что такое «параллельная» концепция в разговоре о преобразователях Рича Хики «Странная петля»?

В презентации Strange Loop о преобразователях Рич Хикки упоминает концепцию в таблица под названием «параллельный».

введите здесь описание изображения

Вы можете легко увидеть примеры последовательностей, входов и каналов с помощью преобразователей.

Теперь вы можете понять, что Observables говорят о RxJava.

Мой вопрос: Что такое «параллельная» концепция в разговоре о странной петле преобразователей Рича Хикки? Это список future, или pmap, или что-то еще?


person hawkeye    schedule 21.10.2014    source источник


Ответы (2)


Были некоторые мысли о создании параллельных трансдуцируемых процессов. Это отслеживается как CLJ-1553. В настоящее время мы не планируем решать эту проблему в Clojure 1.7, но хотели бы сделать что-то в Clojure 1.8.

Теперь можно настроить редюсер, который использует преобразователь в качестве нижней фазы редукции (наряду с более традиционным объединителем fns), но в идеале мы могли бы использовать концепцию «саморедуцируемости», воплощенную в постоянных векторах и картах, для поддержки преобразования. параллельно более естественным образом.

Скорее всего, прямо сейчас это станет своего рода функцией предубеждения, но еще многое предстоит решить.

Одной из проблемных областей является работа с формами kv - редукторы сделали здесь некоторые выборы, которые сложны или неудобны для преобразователей, поэтому их необходимо проработать.

person Alex Miller    schedule 21.10.2014

Концепция заключается в простом параллельном выполнении вычислений. Существует несколько возможных реализаций:

  1. clojure.core.reducers/fold, который похож на reduce, за исключением того, что его следует использовать только с функциями ассоциативной редукции, и он поддерживается протоколом, который использует древовидную структуру различных структур данных Clojure для распараллеливания вычислительных усилий. На самом деле он еще не подходит для преобразователя, но он удобен для преобразователя, и кажется, что в конечном итоге должна появиться версия с поддержкой преобразователя.

  2. Последние выпуски core.async с поддержкой преобразователя экспортируют функцию под названием pipeline, которая распараллеливает преобразование канала → канала на основе преобразователя.

person Michał Marczyk    schedule 21.10.2014