Skip to content

Compare current fusion with closure trees to array structure based one #215

Open

Description

@davidchase

Based on Slack discussion with @briancavalier we would want to research the potentially differences (specifically performance) with current
fusion implementation using closure tree structures compared to fusion using array structures.

Currently we have composition for something like Map fusion or map.map which simply looks like compose(f, source.f)

The array fusion would simply hold the functions inside an array [f, source.f, ...] and then apply the array to the source values.

Activity

  1. Frikki commented on May 11, 2018

    @Frikki
    Member

    Could you provide a link to current code implementation, @davidchase ?

  2. briancavalier commented on May 11, 2018

    @briancavalier
    Member

    A recent discussion in gitter reminded me of this post, which explored this idea in Scala: https://mpilquist.github.io/blog/2017/03/11/stackless-function-composition/

  3. davidchase commented on May 11, 2018

    @davidchase
    MemberAuthor

    @Frikki sure check out under src/fusion or this link and line number

    https://github.com/mostjs/core/blob/master/packages/core/src/fusion/Map.js#L34

    @briancavalier thanks for sharing 👍 the author is a local and went to same school as me.. small world :)

  4. frank-dspeed commented on Dec 22, 2019

    @frank-dspeed

    why should we degrade most to stackless ? then we could simply export [] === Stream and we can apply map filter and such stuff on that 🗡️

  5. briancavalier commented on Dec 23, 2019

    @briancavalier
    Member

    Hi @frank-dspeed. I'm not quite sure what you mean by "degrade most to stackless". Could you explain more and help us understand what you mean?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions